晚安专家,
总体而言,我认为自己对VBA来说还很陌生。我设法为Microsoft的各种平台创建了一些代码。但是,我遇到了一个主要难题,想知道您是否可以提供帮助?
每天(上午4:00),我都会收到一份报告(电子表格格式),其中包含前一天提交的请求订单。我从来没有为每天的储蓄而烦恼,现在我受命对其进行分析。我正在尝试运行宏以从我的档案(特定文件夹)中下载报告(通过选择电子邮件)并将其保存在某个位置。该报告在每封电子邮件中都使用相同的名称。我不想将其另存为增量文件(即服务订单-1,服务订单-2、3、4、5等)。我想根据收到的先前日期进行保存。
运行代码时,我不断收到错误消息
“运行时错误'91':对象变量或未设置块变量”
用于dMsg = objMsg.SentOn
的代码。我在做什么错了?
非常感谢您的帮助!
Sub DownloadAttachments()
Dim individualItem As Object
Dim att As Attachment
Dim strPath As String
Dim strFileName As String
Dim strExt As String
Dim dicFileNames As Object
Dim objMsg As Outlook.MailItem
Dim dMsg As Date
Dim strDate As String
strPath = "C:\Users\User1\Desktop\Test2\"
Set dicFileNames = CreateObject("Scripting.Dictionary")
For Each individualItem In Application.ActiveExplorer.Selection
If TypeName(individualItem) = "MailItem" Then
For Each att In individualItem.Attachments
dMsg = objMsg.SentOn
strDate = Format(dMsg, "yyyy-mm-dd")
If Not dicFileNames.exists(att.FileName) Then
dicFileNames.Add att.FileName, 1
Else
dicFileNames(att.FileName) = dicFileNames(att.FileName) + 1
End If
strFileName = Split(att.FileName, ".")(0)
strExt = Split(att.FileName, ".")(1)
att.SaveAsFile strPath & strFileName & strDate & "-" & dicFileNames(att.FileName) & "." & strExt
Next att
End If
Next individualItem
End Sub