将填充的行从表复制到另一个

时间:2017-01-23 11:05:01

标签: excel vba excel-vba format copy

我是VBA的新手,我正在尝试在Excel中编写一个宏,将一个表复制到另一个表,然后删除一个单元格等于值为“0”的行。

我有一张表格如下:

enter image description here

我希望桌子看起来像这样:

enter image description here

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

以下内容将数据从Sheet1中的表复制到Sheet2,其中第二列不是0 - 使用表的自动过滤器。

我必须添加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的输出不是 true 表格形式。但是,记录一个将其转换为表格以获取该段代码的宏应该不会很棘手。