.Find 的符号 (&) 错误

Ampersand (&) error with .Find

我创建了一个程序,可以在我的 outlook 电子邮件中搜索特定的主题行。它工作得很好,但是每当我要搜索的字符串之一包含“&”符号时,我都会收到错误消息。这是我正在使用的代码示例。

Dim olApp As Outlook.Application
Dim olNs As Namespace
Dim olFldr As MAPIFolder
Dim olMi As MailItem
Dim olItms As Items

Dim subj As String

Set olApp = GetObject(, "Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items

subj = "Life&Health Insurance"

Set olMi = olItms.Find("[Subject] = " & subj) 

当它遇到任何带有&符号的东西时,我得到一个"condition is not valid"错误。请帮忙。

尝试使用 Chr(38) 语句声明字符串变量:

Dim olApp As Outlook.Application
Dim olNs As Namespace
Dim olFldr As MAPIFolder
Dim olMi As MailItem
Dim olItms As Items
Dim subj As String

Set olApp = GetObject(, "Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items
Set subj = "Life" & Chr(38) & "Health Insurance"

Set olMi = olItms.Find("[Subject] = " & Chr(34) & subj & Chr(34)) 

此外,在过滤文本字段时,您可以使用一对单引号 (') 或一对双引号 (") 来分隔属于过滤器一部分的值。请参阅 Find MSDN中描述的class项的方法。