2017-01-23 75 views
0

我是VBA的新手,我試圖在Excel中編寫一個宏,將表複製到另一個表中,然後刪除單元格等於值「0」的行。從表中複製填充的行到另一個

我有一個表,如下所示:

enter image description here

我想表看起來像這樣:

enter image description here

誰能幫助我?

+0

讓我看看我是否得到它:你需要從table1複製不等於0的數據,並將其粘貼到table2中?你需要刪除任何行嗎?在你的第二張圖中,第三行剩下0,爲什麼? –

+0

http://stackoverflow.com/questions/12299898/vba-copy-and-paste-table-row-to-another-table – Vityata

+0

這是一個錯誤。它應該刪除所有「0」值 –

回答

0

以下操作將將Sheet1中表格中的數據複製到Sheet2,其中第二列不是0--使用表格的Autofilter。

我不得不添加1秒application.wait以允許在複製之前應用過濾器。這可能需要增加,具體取決於表大小。也許別人可以幫助一個更強大的方法來等待過濾器應用..?

Dim source_sheet As Worksheet 
Dim destination_sheet As Worksheet 

Set source_sheet = Sheets("Sheet1") 
Set destination_sheet = Sheets("Sheet2") 

    With source_sheet.ListObjects("Table1").Range 
     .AutoFilter Field:=2, Criteria1:="<>0" 
     Application.Wait 1 
     .Copy Destination:=destination_sheet.Range("A1") 
     .AutoFilter Field:=2 
    End With 

值得一提的是,輸出到Sheet2不在真正表格形式。但是,將宏轉換爲表格以獲取該代碼片段的宏應該不會太棘手。

相關問題