2017-01-23 15 views
0

私はVBAを初めて使用しています。テーブルを別のテーブルにコピーし、セルが値 "0"と等しい行を削除するExcelでマクロを書き込もうとしています。テーブルから別のテーブルに塗りつぶし行をコピー

次のように私はテーブルを持っている:

enter image description here

私は、テーブルは次のようになりたい:

enter image description here

誰も私を助けることができますか?

+0

私はそれを持っているかどうかを見てみましょう:table1からデータをコピーする必要があります。これは0ではないので、table2に貼り付けますか?行を削除する必要がありますか? 2番目のイメージでは、3行目に0が残っています。なぜですか? –

+0

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

+0

エラーです。すべての "0"の値を削除することになっています –

答えて

0

次は、テーブルのオートフィルタを使用して、2番目の列が0でないSheet1のテーブルからSheet2にデータをコピーします。

コピーする前にフィルタを適用できるようにするには、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のへの出力が表形式ではないことを言及する価値があります。しかし、そのコードを得るためにテーブルに変換するマクロを記録するのは難しいことではありません。

関連する問題