我有以下代码可以自动保存来自任何传入邮件的附件,并使用日期和时间重命名附件,以免覆盖。
Public Sub AutoSaveAttachment(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat
saveFolder = "C:\temp"
dateFormat = Format(Now, "mm.dd.yyyy (Hh.Nn)")
For Each objAtt In itm.Attachments
If InStr(objAtt.DisplayName, ".pdf") Then
objAtt.SaveAsFile saveFolder & "\" & "Attch " & dateFormat & "." & "pdf"
End If
Set objAtt = Nothing
Next
End Sub
我想在日期/时间之前添加发件人的姓名。我在下面尝试了这个代码并不起作用。运行时错误。
Sub AttachmentDownloader(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim senderName As String
Dim dateFormat
dateFormat = Format(Now, "mmddyyyy_(Hh.Nn)")
senderName = objAtt.senderName & "_"
saveFolder = "C:\temp"
For Each objAtt In itm.Attachments
If InStr(objAtt.DisplayName, ".pdf") _
Or InStr(objAtt.DisplayName, ".xlsx") _
Or InStr(objAtt.DisplayName, ".xlsm") _
Or InStr(objAtt.DisplayName, ".doc") _
Or InStr(objAtt.DisplayName, ".docx") Then
objAtt.SaveAsFile saveFolder & "\" & senderName & dateFormat & objAtt.DisplayName
End If
Set objAtt = Nothing
Next
End Sub
非常感谢任何帮助。
答案 0 :(得分:2)
运行时错误" 424:对象必需"因为您还没有分配到objAtt
变量。您已经获得了一个实例化但未分配的对象变量。
这可能是一个Attachment
对象,但这会引发一个未找到的"方法或数据成员"错误,因为attachment object没有senderName
属性,属于MailItem
class。
所以,试试:
senderName = itm.senderName & "_"