即使自动筛选条件与数据条目匹配,Excel也会复制所有数据

时间:2013-07-12 17:49:38

标签: xml vba autofilter

大家下午好,

我是新来的,只对VBA有合理的了解,所以请原谅我的术语可能不对。

我有一个excel文件,其中包含我编写的几个宏。主宏根据我在同一工作簿中单独工作表上的单元格中键入的条件,对我的所有数据应用自动过滤器。过滤器工作正常,如果指定的条件与我的数据中的记录匹配,则该数据将被复制并粘贴到单独的工作表中。 但遗憾的是,如果我输入数据中不存在的条件,excel / VBA会复制我的所有数据(7000条记录中的每条)并将整个数据粘贴到单独的工作表中,尽管实际上没有找到任何结果。我希望你能给我一些关于如何过度使用这个以及用什么代码来使过滤器正常工作的建议。

基本上我想要的是,如果过滤器无法匹配任何数据,则不会复制/粘贴任何数据。我的宏检查了几个标准(共8个),然后应用自动过滤器。我不知道我是否需要一个代码并将其添加到每个标准的每个代码行中,或者最后只添加一个代码行。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我会通过比较表中的行数和过滤表中的行数来检查过滤器是否产生了任何结果/行。

'assuming the table starts from A1,
MsgBox Range("A1").CurrentRegion.Rows.Count
'confirms the number of rows in the table.
'After trying AutoFilter,
MsgBox ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count
'confirms the number of filtered rows.

将这两个值存储在变量中并进行比较,或者只检查第二个值是否为1(标题行)。如果是1,请不要尝试复制。