Excel保存为.xlsm文件扩展名中的.xlsx
我正在尝试编写一个VBScript来打开一个Excel。 运行macros并将其保存为xlsx。 发布这个closuresexcel文件。
请原谅我对VBScript的了解,因为我还是新手,缺乏VBScript的详细知识。
但是,这很重要,我写的代码不能帮助我。
Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\Users\Desktop\Report0165.xlsm") objExcel.Application.Visible = True objExcel.Workbooks.Add objExcel.Cells(1, 1).Value = "Test value" objExcel.Application.Run "Report0165.xlsm" objExcel.ActiveWorkbook.SaveAs "Report0165.xlsx", FileFormat = 51 objExcel.ActiveWorkbook.Close saveChanges=True objExcel.Application.Quit WScript.Echo "Finished." WScript.Quit
我正在尝试,但我仍然无法做到这一点基本的东西:我需要执行Excel中的所有macros。 因此我没有指定macros名称。
一个。 用macros打开excel
湾 运行macros
C。 将xlsm保存为xlsx
d。 closures文件
任何人都可以请指导我哪里错了。
这段代码应该让你在那里,而不是在我的testing,它打开了禁用macros的xlsm
。
- 请注意我已经改变了path
- 自动化时,您不需要使Excel可见
- closures警报时,将覆盖
Report0165.xlsx
时停止提示 -
FileFormat
不能在vbs中使用 - 您的代码没有指定要在
Report0165
运行的macros
明显更新为OP不想要的问题添加到objExcel.Workbooks.Add
*code* Set objexcel = CreateObject("Excel.Application") Set objWorkbook = objexcel.Workbooks.Open("C:\temp\Report0165.xlsm") 'Objexcel.Application.Visible = True Objexcel.DisplayAlerts = false objWorkbook.Sheets(1).Cells(1, 1).Value = "Test value" 'objExcel.Run "Report0165.xlsm!Test" objWorkbook.SaveAs "C:\temp\Report0165.xlsx", 51 objWorkbook.Close Objexcel.DisplayAlerts = true objexcel.Application.Quit WScript.Echo "Finished." WScript.Quit