VBA Like Operator

时间:2015-05-06 10:20:30

标签: vba pattern-matching outlook-vba sql-like

我想监控我们的公共电子邮件文件夹以获取特定的新邮件,然后使用MsgBox创建一个弹出窗口。除了使用Like运算符的匹配部分之外,所有内容都已设置好并且工作得很好。

我想匹配电子邮件主题中的以下字符串:

*XXX*YYY*

我设法通过使用:

Like "*XXX*YYY*"

我感到困惑的是当有人回复该电子邮件并且主题变为:

Re:*XXX*YYY* or Aw:*XXX*YYY*

如果是这种情况,我不想创建弹出消息,因为它是原始电子邮件的答案。

我试过像:

If subject Like "*[!aw:]*" & "*[!re:]*" Then
   If subject Like "*XXX*YYY*" Then

各种组合,但我似乎没有让它正常工作。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

嗯..你可以用

Dim s As String
s = "*XXX*YYYY*"
If (InStr(1, s, "Re:") = 0) And (InStr(1, s, "Aw:") = 0) Then
   If (s Like "*XXX*YYYY*") Then
        Debug.Print "Match"
   End If
End If

虽然:like运算符使用了wildcharacters ...所以实际上你匹配的不仅仅是字符串*XXX*YYY* ......

答案 1 :(得分:1)

查找异常,然后与通配符进行比较:

 int[] idxs = new int[] { 3, 6, 9}; 
 var result = yourArray.Where((m, index) => idxs.Contains(index)).ToArray();