【发布时间】:2020-06-25 15:49:53
【问题描述】:
我之前在VBA 方面没有经验,但在这里找到了我问题第一部分的解决方案。
因此,我能够使用下面的代码使“保存 Excel 附件”部分工作。
现在,由于附件是一个.xls 文件,并且在打开时给我一个损坏的文件消息(其他工作表从这个保存的文件中提取数据),我想将它自动保存为一个 .xlsx 文件。
我试图找到解决方案,但我尝试过的方法不起作用。希望能在这里找到一些帮助。任何帮助,将不胜感激!提前致谢!
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat
dateFormat = Format(itm.ReceivedTime - 1, "yyyymmdd_")
saveFolder = "THIS IS MY FOLDER"
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Set objAtt = Nothing
Next
End Sub
【问题讨论】:
-
如果它是
xls,我看不出将它保存为xlsx会有什么帮助 - 或者您是否尝试自动打开 Excel 2007+ 的实例并重新保存它?我可能会更多地研究为什么我会收到损坏的文件消息 -
感谢您的回答。我对任何解决方案持开放态度。我最终希望看到的是,正在保存的文件可以被其他 excel 文件“读取”,而无需我手动打开/另存为 xlsx。抱歉,我的描述可能不是 100% 清楚,对此完全陌生。我还认为文件消息损坏的原因来自 Outlook 安全设置(或者至少这是我在某处读到的),但我将无法更改这些设置。
-
这是我打开文件时收到的实际消息:“您尝试打开的文件
的格式与文件扩展名指定的格式不同。验证文件不是在打开文件之前已损坏并且来自受信任的来源。要现在打开文件吗?" -
那么它实际上是一个xls文件吗?
-
检查您保存的附件是否正确。如果消息不是以纯文本形式发送的,那么它可能有另一个附件,即 html 格式的消息 - 您不想将其另存为 .xls