【发布时间】:2018-09-13 02:37:15
【问题描述】:
以下代码曾经可以工作,但突然开始产生上述错误消息。它旨在从文件夹中的每封电子邮件中获取联系方式,然后发送一封新电子邮件。我已经运行了错误检查,失败的行是: 设置 objFolder = objFolder.Folders("收件箱").Folders("Test") 代码如下:
Sub ListMailsInFolder()
Dim objNS As Outlook.Namespace
Dim objFolder As Outlook.MAPIFolder
Dim Lines() As String
Set objNS = GetNamespace("MAPI")
Set objFolder = objNS.Folders.GetFirst ' folders of your current account
Set objFolder =
objFolder.Folders("Inbox").Folders("Test")
Worksheets("Sheet2").Cells.ClearContents
a = 1
For Each Item In objFolder.Items
If TypeName(Item) = "MailItem" Then
Item.Display
Worksheets("Sheet2").Cells(1, a).Value =
Item.Body
Item.Close 1
a = a + 1
Debug.Print Item.ConversationTopic
End If
Next
For x = 1 To 208
If Worksheets("Sheet2").Cells(1, x) = "" Then
Exit For
End If
Set OutApp = CreateObject("Outlook.Application")
Set objOutlookMsg = OutApp.CreateItem(olMailItem)
Set Recipients = objOutlookMsg.Recipients
Set objOutlookRecip =
Recipients.Add("<email removed for forum>")
objOutlookRecip.Type = 1
objOutlookMsg.SentOnBehalfOfName =
"<email removed for forum>"
objOutlookMsg.Subject = "Fleet Insurance"
objOutlookMsg.Body = "Testing this macro" & vbCrLf &
vbCrLf & "First Name: " & Worksheets("Sheet3").Cells(7, x) & vbCrLf & "Last Name: " & Worksheets("Sheet3").Cells(10, x) & vbCrLf & "Email Address: " & Worksheets("Sheet3").Cells(14, x)
'Fleet client relationship team in signature
'Resolve each Recipient's name.
For Each objOutlookRecip In objOutlookMsg.Recipients
objOutlookRecip.Resolve
Next
objOutlookMsg.Send
'objOutlookMsg.Display
Set OutApp = Nothing
Next x
End Sub
【问题讨论】:
-
有时(并非总是),错误 message 比它的 number 更有用。
-
我还建议从帖子中删除 Daniel 和 Simon 的实际电子邮件地址。
-
该错误消息基本上是“找不到对象”。你真的有一个名为“Test”的文件夹吗?
-
感谢您的建议。
-
仅供参考,我已将帖子标记为版主,以便将电子邮件地址从修订版 1 中删除,因此就像它们从一开始就不存在一样:)