Vba 91未设置对象变量或带块变量
我正在尝试从指定主题的电子邮件下载附件Vba 91未设置对象变量或带块变量,vba,outlook,download,attachment,Vba,Outlook,Download,Attachment,我正在尝试从指定主题的电子邮件下载附件 If Msg.Subject = "CALENDAR-EVENT" Then 'Download the attachment Dim itmAttach As Outlook.MailItem Dim objAtt As Outlook.Attachment Dim saveFolder As String saveFolder = "C:\events\"
If Msg.Subject = "CALENDAR-EVENT" Then
'Download the attachment
Dim itmAttach As Outlook.MailItem
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\events\"
Dim dateFormat As String
dateFormat = Format(itmAttach.ReceivedTime, "yyyy-mm-dd Hmm ")
For Each objAtt In itmAttach.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Next
End if
我得到一个错误:
91未设置对象变量或带块变量
可能线路有错误:
Dim itmAttach As Outlook.MailItem
获取下载文件的名称也很好。我以前没有使用outlook API,多年来也没有接触VBA,但从外观上看,您的意思是:
If Msg.Subject = "CALENDAR-EVENT" Then
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\events"
Dim dateFormat As String
dateFormat = Format(Msg.ReceivedTime, "yyyy-mm-dd Hmm ")
For Each objAtt In Msg.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Next
End if
错误91似乎是VBA的NullReferenceException。这就像做梦一样工作。还有一个问题:我希望将文件名保存到一个变量中,如下所示:
Dim filename as String filename=dateFormat&objAtt.DisplayName
之后,我需要在代码中使用文件名:csvFilePath=“c:\events\filename.csv”
,但这不起作用。知道怎么做吗?我想绝对路径应该是fileName=saveFolder&“\”&dateFormat&objAtt.DisplayName
。