0

一个应用程序(一个 SCADA 程序)有一个每天触发的事件并运行一个写入 Excel 文件的脚本(每天一个)。该文件可能包含多张工作表。

在安装了 Office 2007 的 Windows 7 上,我可以写,但我无法保存,也无法退出Excel.Application.

Dim objExcel as Object
Set objExcel = CreateObject("Excel.Application")
objExcel.WorkBooks.Add  'I think I shouldn't do this, but if not it doesn't work

Set sheet = objExcel.ActiveWorkBook.Worksheets.Add
'writing to the actual sheet...

objExcel.ActiveWorkBook.SaveAs path$
objExcel.Workbooks.Close
objExcel.Quit   

如果我手动运行脚本(从脚本编辑器):

  • 它可以节省
  • Excel 进程仍在运行
  • 当我打开 Excel 文件(不是来自脚本)时,它有 2 个工作簿,实际工作簿和上次执行的最后一个工作簿。

如果我尝试触发事件:

  • 保存时在线发生错误
4

1 回答 1

1

解决了。

Dim objExcel as Object
Dim sheet as Object
Set objExcel = CreateObject("Excel.Application")
objExcel.WorkBooks.Add

Set sheet = objExcel.ActiveWorkBook.Worksheets.Add
'writing to the actual sheet...

path$ = "path/must/use/slash/insteed/of/backslash"

objExcel.ActiveWorkBook.SaveAs path$
objExcel.ActiveWorkBook.Close
objExcel.Quit  
Set objExcel = Nothing    

所以问题是path$,我忘了放Set objExcel = Nothing。就这样。

于 2016-01-28T15:22:56.453 回答