【问题标题】:Copy rows with a specific value to another sheet将具有特定值的行复制到另一个工作表
【发布时间】:2015-07-26 00:07:39
【问题描述】:

我有一个巨大的 Excel 工作表,其中包含 200,000 行。数据是 B 列中列出的大约 120 个主题,如 sinani-01sinani-120。例如,我需要复制 B 列包含 sinani-01 的所有行,然后将它们粘贴到新工作表中。或者至少只是选择它们? 您能告诉我如何在 VBA 中执行此操作吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    Excel 有一个AutoFilter 函数,可用于仅选择包含特定值的行。你可以这样使用它:

    ' Filter column B by a specific value...
    Range("B:B").AutoFilter 1, "sinani-01"
    
    ' Copy all visible rows to a new sheet...
    Range("B:B").SpecialCells(xlCellTypeVisible).EntireRow.Copy Sheets("sinani-01").Range("A1")
    
    ' Turn the AutoFilter back off...
    Range("B1").AutoFilter
    

    【讨论】:

    • 感谢邦德,但我收到错误 Invalid Outside Procedure 错误
    • 您需要将这些行添加到宏或子例程中。你已经开始了吗?
    • 对不起,我现在明白了,过滤部分工作正常,但复制不工作,我收到错误“424”Object required Range("B:B").Rows.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("A1")
    • 你有Sheet2吗?还是您在那里使用不同的 Sheet 对象?
    • 哦,我明白了!如果不存在,有什么方法可以自动创建它?即使使用我们在Range("B:B").AutoFilter 1, "sinani-05" 中使用的"sinani-05" 之类的过滤器名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2021-12-31
    • 2020-02-25
    • 1970-01-01
    相关资源
    最近更新 更多