宏尝试将文件另存为.dif后,文件被破坏

  • 本文关键字:文件 另存为 dif excel vba
  • 更新时间 :
  • 英文 :


我被这个过程卡住了:

Today = Format(Date, "dd-mm-yyyy")
Application.DisplayAlerts = False
Set DestinationWb = Workbooks.Add
ThisWorkbook.Sheets("MySheet").Copy Before:=DestinationWb.Sheets(1)
DestinationWb.Sheets("Foglio1").Delete
Application.DisplayAlerts = True
DestinationWb.SaveAs Application.GetSaveAsFilename(InitialFileName:=LCase(Environ("Path")) & "" & Today & "_MyName.dif", FileFilter:="Formato interscambio dati (*.dif), *.dif", Title:="My Data Export")
DestinationWb.Close

它可以工作,它创建了一个扩展名为.dif的文件,但由于某些原因,目标文件的内容被加了脚本,我无法读取或重用它

有人经历过类似的事情吗?如何解决?

文件不会被破坏-它只是没有以您期望的文件格式存储。您不会告诉Excel以特定格式存储它(在您的情况下,可能是数据交换格式(。仅仅通过提供文件扩展名并不能建议另存为更改格式,因此Excel会将文件存储为常规Excel文件。

您可以通过将保存的文件重命名为.xlsx并尝试用Excel打开来检查这一点——它应该可以工作。

您需要使用FileFormat-参数告诉SaveAs您想要的格式。文件格式和命名常量如下所述:https://learn.microsoft.com/en-us/office/vba/api/excel.xlfileformat.在您的情况下,您可能需要xlDIF

Dim fileName
fileName = Application.GetSaveAsFilename(InitialFileName:=LCase(Environ("Path")) & "" & Today & "_MyName.dif", FileFilter:="Formato interscambio dati (*.dif), *.dif", Title:="My Data Export")
DestinationWb.SaveAs filename, FileFormat:=xlDIF

最新更新