使用命令行强制保存并终止Excel工作簿(Windows操作系统)

时间:2014-02-12 11:05:52

标签: excel vba excel-vba

我正在尝试创建一个打开两个工作簿的批处理文件,保存它们并在一分钟左右后使用此命令行关闭它们:

START "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" "C:\path\to\myWorkbook1.xls"

START "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" "C:\path\to\myWorkbook2.xls"

打开这两个工作簿的想法是, myWorkbook2.xls myWorkbook1.xls 上有一些引用的单元格,并且应该打开两个工作簿以便引用的单元格将得到更新。

问题: 我搜索了互联网,无法找到一种方法来保存&关闭两个工作簿。我发现的是使用以下命令终止打开的excel.exe实例:

taskkill /F /IM EXCEL.EXE

这对我有点不好,因为它会立即关闭所有工作簿而不会保存它们。

有没有办法实现这个目标?或者编写cscript代码是唯一的方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

一些头脑风暴:

  • 杀死Excel进程确实无效。
  • 命令行中没有选项可以使Excel保存工作簿。
  • 您可以运行一个向Excel发送正确击键的实用程序,但这是一个非常脆弱的解决方案......
  • 您可以打开DDE对话;这确实允许您保存Excel文件。但是,我想知道DDE是否是2014年的正确方法,我甚至不知道从批处理文件中控制是多么容易......
  • 您确实可以使用自动化,可以使用wscript / cscript完成。 Powershell也可以访问自动化界面IIRC,但我对此没有经验。
  • 你可以在workbook2中编写一个宏来处理它(但是你很难打开workbook2而不会自动关闭你)。
  • 也许一个Excel加载项可以工作,它允许你进入Excel的后门,但这在这里过于复杂。

所以,是的,使用cscript;)