VBA 运行时错误'-2147352567 (800200009)'



我试图做一个vba脚本excel搜索电子邮件的主题或主体通过插入单元格的数据(A1),但在运行期间,我遇到了错误'-2147352567(800200009)'正好在每个循环。

我试图做一个for循环来检查条件,但有相同的错误

Sub SearchEmails()
'Declare variables
Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olItem As Object

Set olApp = New Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.GetDefaultFolder(olFolderInbox)
Dim olFilter As String
olFilter = "[Subject] = '" & Range("A1").Value & "' OR [Body] = '" & Range("A1").Value & "'"

For Each olItem In olFolder.Items.Restrict(olFilter)
'Do something with the email (e.g. print subject or delete)
Debug.Print olItem.Subject
Next olItem
End Sub

错误代码告诉Outlook无法解析传递给Restrict方法的条件。如果Excel的值包含单个引号符号,则条件可能格式不佳。因此,我建议在搜索条件行中使用Chr(34)而不是单引号。看到物品。限制方法返回错误:"无法解析条件";查看更多信息。

在匹配字符串属性时,您可以使用一对单引号(')或一对双引号(")来分隔作为过滤器一部分的字符串。例如,当属性类型为String时,以下所有行都能正常工作:

sFilter = "[Subject] = 'Microsoft'"
sFilter = "[Subject] = " & Chr(34) & "Microsoft" & Chr(34)

最新更新