我有这个代码,可以保存对特定地点的附件并将其重命名为" name.xls"
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\Users\acheng\Desktop"
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\name.xls"
Set objAtt = Nothing
Next
End Sub
用户在此线程中使用.csv文件执行了非常类似的操作:
VBA Outlook - Rename attachments and save to folder
除了使用.xls文件外,我做了同样的事情。
我的脚本会保存并重命名该文件,但当我尝试打开该文件时,它会显示:"' name.xls'格式与文件扩展名指定的格式不同。确认它没有损坏......"
一旦我点击是并且它打开,所有数据都是奇怪的符号。如果我更换& ' \ name.xls'与'& objAtt.DisplayName'它将使用它的原始名称正确保存文件。
我已经仔细检查过这是一个.xls文件。找出更通用的东西(以便相同的脚本适用于.xls .xlsx和.xlsm)也会非常有用,但不是那么重要。
答案 0 :(得分:1)
如果有多个附件,您的代码可能会将Excel附件替换为其他附件之一。
尝试这样的事情,找出
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim i as Integer
i=0
saveFolder = "C:\Users\acheng\Desktop"
For Each objAtt In itm.Attachments
i = i + 1
objAtt.SaveAsFile saveFolder & "\name" & i & ".xls"
Set objAtt = Nothing
Next
End Sub
你应该在这里添加一些验证。假设所有附件都是Excel文件是一个很大的风险。