4210 |
Excel將多張工作表指定欄位不為空白的資料複製到另一張工作表中-VBA |
我想製作一個多個工作表的訂購單,自動將各工作表有下單的品項集中到另一個工作表中。
函數公式
步驟1:按ALT+F11鍵,開啟「VBA視窗」。
步驟2:點取「插入 > 模組」指令,插入一張空白模組表。
步驟3:輸入下列程序。
Sub TEST4210()
Range("A2:E999").Delete '先清空目前工作表中資料
For i = 1 To Worksheets.Count - 1 '設定I值為1到整個活頁簿所有工作表(扣除最右邊那張工作表)
Set s = Sheets(i) '指定要處理的工作表
For j = 2 To s.Range("B1").End(xlDown).Row '框選第2列到所有含有資料的列
If s.Range("E" & j).Value <> "" Then '如果E欄含有數量就執行下列程序
s.Range(j & ":" & j).Copy ‘將目前列內容複製
x = ActiveSheet.UsedRange.Rows.Count + 1 '設定X值為目前列加1
Range("A" & x).Select '將目前所在列A欄儲存格選取
Range("A" & x).PasteSpecial '將複製資料貼上
End If '結束IF判斷式
Next j 'J變數值加1
Next i 'I變數值加1
End Sub '結束程序
步驟4:按ALT+F4鍵關閉VBA視窗。
步驟5: 點取「檢視 > 巨集 > 檢視巨集」指令。
步驟6: 點取「TEST4210」項目,再點取「執行」鈕。
步驟7:結果如下:
留言列表