Excel从.xlsm文件扩展名

时间:2015-08-11 06:12:21

标签: excel vba excel-vba vbscript

我正在尝试编写一个VBScript来打开一个excel。 运行宏并将其另存为xlsx。发布此关闭excel文档。

原谅我对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中的所有宏。因此我没有指定宏名称。

  

一个。用宏

打开excel      

湾运行宏

     

℃。将xlsm保存到xlsx

     

d。关闭文件

任何人都可以指导我哪里出错了。

1 个答案:

答案 0 :(得分:1)

除了我的测试之外,这段代码应该可以帮助你打开Report0165.xlsx并禁用宏。

  • 请注意我已改变路径
  • 您不需要在自动化时显示Excel
  • 当您覆盖FileFormat
  • 时,关闭提醒会停止提示
  • Report0165无法在vbs
  • 中使用
  • 您的代码未指定要在objExcel.Workbooks.Add
  • 中运行的宏

已更新,因为显然OP并不想要问题的新书添加*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

git+ssh://git@bitbucket.org/xxx/repo.git:
  git.latest:
    - rev: rest
    - target: /home/vagrant/src
    - require:
      - ssh_known_hosts: bitbucket.org