我有一个大约 2500 行的列表,我想循环检查第一列中是否出现单词“intern”后跟“:”(:可以在 intern 之后的任何位置)
代码的重要部分如下所示:
For k = 1 To lastrowND
intern = Worksheets("new Data").Cells(k, 1).Value
If Not intern Like "*intern*:" Then
但是这个命令并没有过滤任何东西。我的错误在哪里?
非常感谢
答案1
如果您的数据在冒号后有任何内容,那么您将需要额外的数据*
才能测试为真。(*intern*:*
)
正则表达式默认假设您需要前导和尾随通配符。不过正则表达式的功能非常强大,因此如果您有时间,花点时间尝试一下是值得的。
答案2
尝试使用如下正则表达式:
Dim strPattern As String: strPattern = "intern(.*?):"
Dim regEx As New RegExp
' ...
With regEx
.Global = True
.IgnoreCase = False
.Pattern = strPattern
End With
For k = 1 To lastrowND
intern = Worksheets("new Data").Cells(k, 1).Value
If Not regEx.Test(intern) Then
' ...