我被这个过程卡住了:
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