【问题标题】:Outlook: Save Excel attachment and change file extensionOutlook:保存 Excel 附件并更改文件扩展名
【发布时间】: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

标签: vba outlook


【解决方案1】:

你像这样指定文件格式

ActiveWorkbook.SaveAs fileFormat:=xlWorkbookDefault

ActiveWorkbook.SaveAs 文件格式:=51

http://msdn.microsoft.com/en-us/library/office/ff840717(v=office.14).aspx

此处的文件格式:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    相关资源
    最近更新 更多