Vba 对象或未设置变量-从Lotus notes保存附件

Vba 对象或未设置变量-从Lotus notes保存附件,vba,object,lotus,Vba,Object,Lotus,我正在尝试获取一个代码,该代码保存特定Lotus Notes文件夹的附件,并将其保存到本地文件夹(无需从Lotus Notes中删除电子邮件或附件)。但我不断收到错误消息:“对象或变量未设置” 我已经更改了几次代码,但我不明白我做错了什么。我是VBA新手,不理解所有代码。我将非常感谢你的帮助 谢谢大家! Sub Save_Attachments() Const stPath As String = "c:\Attachments" Const EMBED_ATTACHMENT As Long

我正在尝试获取一个代码,该代码保存特定Lotus Notes文件夹的附件,并将其保存到本地文件夹(无需从Lotus Notes中删除电子邮件或附件)。但我不断收到错误消息:“对象或变量未设置” 我已经更改了几次代码,但我不明白我做错了什么。我是VBA新手,不理解所有代码。我将非常感谢你的帮助

谢谢大家!

Sub Save_Attachments()

Const stPath As String = "c:\Attachments"
Const EMBED_ATTACHMENT As Long = 1454
Const RICHTEXT As Long = 1

Dim noSession As Object
Dim noDatabase As Object
Dim noView As Object
Dim noDocument As Object
Dim noNextDocument As Object

Dim vaItem As Variant
Dim vaAttachment As Variant

Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", " mail2\cbarrios.nsf")
Set noView = noDatabase.GetView("AAA")
Set noDocument = noView.GetFirstDocument
Do Until noDocument Is Nothing
Set noNextDocument = noView.GetNextDocument(noDocument)
If noDocument.HasEmbedded Then
  Set vaItem = noDocument.GetFirstItem("Body")
  If vaItem.Type = RICHTEXT Then
    For Each vaAttachment In vaItem.EmbeddedObjects
     If vaAttachment.Type = EMBED_ATTACHMENT Then
        With vaAttachment
        .ExtractFile stPath & vaAttachment.Name
        End With
     End If
    Next vaAttachment
  End If
End If
Set noDocument = noNextDocument
Loop

Set noNextDocument = Nothing
Set noDocument = Nothing
Set noView = Nothing
Set noDatabase = Nothing
Set noSession = Nothing

End Sub
给定的代码应该适用于Notes Richtextformat格式的每封邮件。 它很可能会为每个mime消息抛出上述错误

不幸的是,对于不同的格式,获取附件的方式是不同的。 但是:有一个通用的解决方案对它们都有效

Dim varAttachmentNamens作为变量
REM“在这里获取文档”
varAttachmentNames=noSession.Evaluate(“@AttachmentNames”,noDocument)
对于varAttachmentNames中的每个strAttachmentName
Set-vaAttachment=noDocument.GetAttachment(strAttachmentName)
如果vaAttachment.Type=嵌入附件,则
调用vaAttachment.extract文件stPath&vaAttachment.Name
以
端孔

查看或了解更多详细信息。

此错误出现在哪一行?它应该用黄色突出显示。谢谢你的回答。我已经检查了你发给我的链接,但是(正如我提到的,我在这方面是新手),我仍然没有让它工作。我收到一条错误消息:编译时出错(我希望这是正确的翻译)。它显示了行中的错误:对于varAttachmentNames中的所有strAttachmentName,我也不确定我是否将您的代码放在了正确的位置(在我的代码中)。对不起,我刚刚复制了lotusscript代码。大多数情况下,如果在VBA中工作相同。每个都必须是
,而不是所有
都必须是
。我在上面的例子中修复了这个问题。