Vba 使用发件人自动下载附件并重命名';姓名

Vba 使用发件人自动下载附件并重命名';姓名,vba,outlook,Vba,Outlook,我有以下代码,可以自动保存任何传入邮件的附件,并使用日期和时间重命名附件,以免覆盖 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)")

我有以下代码,可以自动保存任何传入邮件的附件,并使用日期和时间重命名附件,以免覆盖

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
非常感谢您的帮助。

运行时错误“424:Object Required”,因为您尚未分配给
objAtt
变量。您有一个实例化但未分配的对象变量

这可能是一个
附件
对象,但这将引发“未找到方法或数据成员”错误,因为没有属于的
senderName
属性

因此,请尝试:

senderName = itm.senderName & "_"

运行时错误是什么?哪一行引发错误?(请参阅)此行给出了运行时错误senderName=objAtt.senderName&“\u0”。大卫知道了,谢谢大家。我被这件事耽搁了一段时间。是的,我猜得太多了。见下面的答案:)