【发布时间】:2015-05-29 03:08:32
【问题描述】:
我想知道是否有比我使用的代码更快的方法。我使用 xlUp 从记录器中获取了代码。
rCnt = Cells(Rows.Count, "B").End(xlUp).Row
ActiveSheet.Range("$B$1:$J" & rCnt).AutoFilter Field:=5, _
Criteria1:=Application.Transpose(arrCodes), Operator:=xlFilterValues
Rows("2:" & rCnt).Delete Shift:=xlUp
实际上,如果有某种方法可以翻转过滤器,我根本不需要删除,因为这是我从中复制的临时表。然而,我所有的研究都未能找到解决办法
Criteria1:=Application.Transpose(<>arrCodes)
并且 arrCodes 有太多元素无法在过滤器中列出。不在 arrCodes 中的东西太多了,无法从中创建一个数组。谢谢。
【问题讨论】:
-
我认为“翻转”是指反向/相反,如
Not。有了这个,如果我在 VBA 之外执行此操作,我将通过过滤、着色可见单元格然后过滤非着色单元格来进行“反向”搜索。然后,您可以将反向过滤器复制到其他地方。您还可以使用Advanced Filter专门搜索一长串<>item类型条件。 -
我可以试试你的颜色创意。如果我过滤我想要删除的内容,然后将其涂成红色,然后在非红色单元格上重新过滤,我将拥有我需要的内容而无需删除。无论如何,这是我的假设。
-
这就是我通常的做法。使用普通 UI 而不是 VBA 更容易测试,看看它是否符合您的要求。
-
这很好用。这几乎是瞬间的。它允许我操纵表格并获得我想要的可见内容,因此我只需将其快速复制到主表格即可。谢谢。我可以将评论标记为答案,还是您需要将此想法作为答案提交?
-
我将其添加为答案,因此您可以接受它是否有效。我稍后会删除 cmets。
标签: excel performance vba filter