【问题标题】:Copy filled rows from table to another将填充的行从表复制到另一个
【发布时间】:2017-01-23 11:05:01
【问题描述】:

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

我有一张如下表:

我希望表格如下所示:

谁能帮帮我?

【问题讨论】:

  • 让我看看我明白了:你需要从table1复制数据,不等于0,然后粘贴到table2中?您需要删除任何行吗?在你的第二张图片中,第三行左边有 0,为什么?
  • 这是一个错误。它应该删除所有“0”值

标签: vba excel format copy


【解决方案1】:

下面将使用表格的自动过滤器将 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 表格形式。但是,记录一个宏并将其转换为表格以获取该段代码应该不是什么难事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多