VBA“类似”没有做它应该做的事情

VBA“类似”没有做它应该做的事情

我有一个大约 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
   ' ...

相关内容