【发布时间】:2015-07-26 00:07:39
【问题描述】:
我有一个巨大的 Excel 工作表,其中包含 200,000 行。数据是 B 列中列出的大约 120 个主题,如 sinani-01 到 sinani-120。例如,我需要复制 B 列包含 sinani-01 的所有行,然后将它们粘贴到新工作表中。或者至少只是选择它们?
您能告诉我如何在 VBA 中执行此操作吗?
【问题讨论】:
我有一个巨大的 Excel 工作表,其中包含 200,000 行。数据是 B 列中列出的大约 120 个主题,如 sinani-01 到 sinani-120。例如,我需要复制 B 列包含 sinani-01 的所有行,然后将它们粘贴到新工作表中。或者至少只是选择它们?
您能告诉我如何在 VBA 中执行此操作吗?
【问题讨论】:
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 错误
Object required Range("B:B").Rows.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("A1")
Sheet2吗?还是您在那里使用不同的 Sheet 对象?
Range("B:B").AutoFilter 1, "sinani-05" 中使用的"sinani-05" 之类的过滤器名称