【发布时间】:2016-01-22 21:12:29
【问题描述】:
我正在处理一个包含多列和大约 6000 行的 Excel 工作表。 Sheet1 将包含主要信息。(R 的 6000 行和列)。 Sheet2 是我需要用于过滤/删除这些行的例外列表。
现在这就是我正在使用的,它只能找到完全匹配。我需要这个来从 sheet2 中查找异常,即使它们是另一个单词的一部分。
例如:当我运行它时,它将查找并删除仅包含单词 hello 的每一行。但不是 hello world 或 hello foo。我需要这个来删除带有 hello world 和 hello foo 的行。
我正在尝试以这种方式进行设置,以便我可以简单地向我的例外列表中添加更多项目并根据需要删除更多行。
Sub CheckA()
Dim LR As Long, i As Long
With Sheets("IR Temp")
LR = .Range("A" & Rows.Count).End(xlUp).Row
For i = LR To 1 Step -1
If IsNumeric(Application.Match(.Range("A" & i).Value, Sheets("Exceptions").Columns("A"), 0)) Then .Rows(i).Delete
Next i
End With
End Sub
我怎样才能使这不那么具体?我知道它正在按应有的方式工作并且正在找到完全匹配的内容,但是如果找到该值与其他字符的任何组合,我需要它来查找并删除该行。
【问题讨论】:
-
我不会投票结束这个问题,但我已经在至少六个其他问题中讨论过这个问题。见Set Auto Filtering multiple wildcards。该 Q 也有一些链接可以从通配符匹配中排除某些值。
-
我认为使用多个通配符的自动过滤将在哪里进行,但这让我一次放置一个异常或过滤项目,而不是从第二张表的第一列中提取它。我需要这个来查看该工作表并获取要过滤掉的项目列表,因为我不会是唯一更新此例外列表的人,并且稍后可能会由另一个程序更新。
-
工作表上的任何内容都可以读入数组并循环播放。 AutoFilter method 比循环单个删除更有效(这也可能无法涵盖每个出现)。
-
圣牛@Jeeped 我刚刚阅读了您链接的答案,并通过使用
Scripting.Dictionary的键作为Criteria让我大吃一惊。 Whatttttttttttttt 好扎实 -
@DanWagner - 谢谢!该方法的答案不断演变,但我对结果感到满意。对大块数据进行快速测试。
标签: vba excel excel-2010 autofilter