Norden 發問時間: 電腦與網際網路軟體 · 9 年前

Excel VBA:

各位版大好,

今天想問的問題跟前幾天發問的類似

http://tw.knowledge.yahoo.com/question/question?qi...

我想將我的出貨包裝明細轉成All items shipment list的工作表型式

只是要更進一步說明的檔案下載如下:

http://www.FunP.Net/896514

All items shipment list 說明: (請參考B-List (2)工作表)我的作法並非是最好的作法, 但我只能以我現有的能力去弄出要的結果: 列出這次出貨每樣商品出貨總數量, 因為包裝單上的商品有可能是分開包裝到不同箱子去

我的作法為:1. 在V欄用IF涵數將NBR排除 2. 在X欄取出訂單&產品&材料質→用這三個條件抓取, 每個item才會有獨一性 3. 在AD欄用Sumif加總出符合上述條件的商品 4. 在AL欄設定Countif以求出上述商品重複到的次數 5. 接著在AK欄篩選, 選出1的值, 這表示他沒有重複, 並且將這

接著就"選擇性貼上"Y~AM欄至All items shipment list

但做這作法會有個問題:6. AA/AB/AC欄的值若是空白值, 則會顯示0, 得一比一比找, 手動刪除 7. AL欄的金額選擇性貼上All items shipment list後還要重刷

先在此謝謝大家的協助^^

2 個解答

評分
  • 9 年前
    最佳解答

    <範例檔>

    http://www.funp.net/401245

    此題似乎也是沒有人願意出手!

    趕個小夜工,大約抓準則做檔,請先測試!

    2012-04-17 16:43:46 補充:

    EXCEL VBA.將〔出貨表〕的〔明細〕匯總成〔統計表〕

                           <.准提部林.>

    -------------------------------

    範例檔簡介:

    ■程式碼:僅列出主功能段,其餘請參考範例檔

     <取得3欄位索引值及相欄資料>

     For j = 2 To bRow

       Set xR = ShtB.Range("A" & j)

       xT = xR & xR(1, 2) & xR(1, 3)

       If xT = "" Then GoTo NEXT_ROW

       If xDicA.Exists(xT) = False Then

         If mEnd(0, 2) <> "" Then mEnd.EntireRow.Insert

         mEnd(0, 2).Resize(1, 3) = xR.Resize(1, 3).Value

         If xR(1, 7) <> "" And xR(1, 7) <> "NBR" Then _

             mEnd(0, 4) = mEnd(0, 4) & " " & xR(1, 7)

         mEnd(0, 5).Resize(1, 3) = xR(1, 4).Resize(1, 3).Value

         mEnd(0, 12) = xR(1, 16)

       End If

       xDicA(xT) = xDicA(xT) + xR(1, 8)

       If Val(xDicB(xT)) = 0 Then xDicB(xT) = xR(1, 18)

     NEXT_ROW:

     Next j

     

     <資料轉置.加入統計公式.取代0值>

     y = xDicA.Count

     Range("H2").Resize(y) = Application.Transpose(xDicA.items)

     Range("N2").Resize(y) = Application.Transpose(xDicB.items)

     Range("M2").Resize(y).Formula = "=H2*L2"

     mEnd(1, 8).Formula = "=SUM(" & Range("H2").Resize(y).Address & ")"

     mEnd(1, 13).Formula = "=SUM(" & Range("M2").Resize(y).Address & ")"

     Range("E2:G" & mEnd.Row - 1).Replace "0", "", Lookat:=xlWhole

    -------------------------------

    <範例檔>:

    http://www.funp.net/401245

    -------------------------------

  • 9 年前

    謝謝您, 准提部林,

    測試一下完全正確無誤!!!

    想請您轉成"解答", 這樣子就可以結案了

    還有想不到竟然麻煩您趕夜工了...

    每次都讓我很趕動, 但真過意不去

    我也會繼續在外國語上盡我所能解答以傳播 知識+ 相互幫助的大愛精神呀>"

還有問題?馬上發問,尋求解答。