各位前輩大家好,因為對程式完全一竅不通,本來想試著自己寫不行再上來發問
後來發現完全生不出一個字
想用錄製的 但好像也錄不出我人工判斷的效果,所以直接上來發問,還請見諒!
目標說明:我想製作一個多個工作表的訂購單,透過巨集的方式,自動將各工作表有下單的品項集中到另一個工作表中。
細節說明:
看起來這個應該不用到VBA或巨集!? 似乎用公式就可以了
ccenjor
公式版本的話要請教ccenjor大神了....
VBA版本如下
1.要在最右邊的統計訂單sheet中執行
2.因為使用迴圈抓sheet,所以左邊頁籤必須都是商品,巨集的頁籤請先移除
Sub order_list()
Range("A2:E999").Delete '先清空資料
For i = 1 To Worksheets.Count - 1 '所有Sheets,扣除最右邊的
Set s = Sheets(i) '依序指定工作表
For j = 2 To s.Range("B1").End(xlDown).Row '依序檢查sheet中所有項目
If s.Range("E" & j).Value <> "" Then '如果項目有數量的話
s.Range(j & ":" & j).Copy '複製此項目
x = ActiveSheet.UsedRange.Rows.Count + 1 '最後資料的下一列
Range("A" & x).Select
Range("A" & x).PasteSpecial '貼至目前sheet
End If
Next j
Next i
End Sub
剛剛使用成功!!!
感謝Aaron的作法,清楚又仔細的寫出每一條是在做什麼,
讓我自己還可以試著小改一下!!
也謝謝您,不只解答,還讓我這個菜鳥認識到這裡VBA大神跟公式大神 ^^
VBA做法較好,我的做法僅供參考,太麻煩了:(工作表名稱若改變,公式也要跟著改)。
A2:
=IF(ROW()<=101,上衣!A2,IF(ROW()<=201,INDIRECT("褲子!R"&ROW()-100&"C"&COLUMN(),0),INDIRECT("洋裝!R"&ROW()-200&"C"&COLUMN(),0)))
向下複製公式到A2:E300。(預計一種商品約佔100列),每張工作表列數視資料量可以設大一點沒關係。
資料 > 篩選
點取E1下拉式按鈕,將0核取方塊空白,再按確定鈕。
結果
如果要只留E欄為的資料,可以每次都複製到新的一張工作表,選擇貼上值,將公式變數值。
按CTRL+F鍵
點全部尋找鈕
按CTRL+A鍵
點取「常用 > 刪除 >刪除工作表列」。
點關閉鈕,結果如下