Vbscript:当脚本在后台运行Excel时,“手动”打开一个新的Excel工作簿

时间:2017-11-06 22:50:46

标签: excel vba excel-vba vbscript

我开发了几个Excel宏来修改从日志中获取的数据并将结果写入SQL数据库。我也使用vbscript在后台运行这个Excel(和它的宏)并定期写出数据而不用打扰用户。 vbscript包含以下代码:

Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:\Users\W**\**\SQL.xlsm'!ThisWorkbook.workbook_open"
objExcel.DisplayAlerts = False
WScript.Sleep 60000
objExcel.Application.Quit
Set objExcel = Nothing

这完美无缺。但是,有一个问题。当Excel在后台执行时,似乎无法打开另一个工作簿。有谁知道这个问题是否以及如何解决?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在行Set objExcel = CreateObject("Excel.Application")之后,添加

objExcel.Visible = False

这将强制Excel在交互式启动时生成新实例。

答案 1 :(得分:0)

对于那些有同样问题的人来说,似乎我在经过多次试验和错误后找到了一个可行的解决方案。

在最开始添加以下语句以创建第二个实例似乎可以解决所有问题:

Set Excel = CreateObject("Excel.Application")