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