【问题标题】:How to properly write and save a new Excel file?如何正确写入和保存新的 Excel 文件?
【发布时间】:2016-01-26 09:01:31
【问题描述】:

一个应用程序(一个 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 个工作簿, 上次执行的实际和最后一个。

如果我尝试触发事件:

  • 保存时行出错

【问题讨论】:

  • 错误信息是什么?
  • System.IO.FileNotFoundException: 无法加载文件或程序集 'file:///C:\Wi
  • “Basic Control Engine 将 CIMPLICITY 事件处理程序的强大功能与 Visual Basic™ 兼容语言相结合,允许您编写从简单到复杂的应用程序和例程的脚本和编程。”随便...
  • 我要问的步骤是:创建和编写一个包含多张工作表的新 Excel,保存并关闭它。
  • @AnsgarWiechers 它是 VBA,来自 the manual - “程序编辑器使用一种在语法上与 Microsoft 的 Visual Basic for Applications™ 兼容的嵌入式 Basic 语言。这除了 CIMPLICITY 软件特定的扩展外,该语言还提供了丰富的基本命令集。”

标签: vba excel scada


【解决方案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。就这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2020-05-10
    • 2022-01-25
    • 2011-06-05
    • 2020-11-08
    • 2012-05-28
    相关资源
    最近更新 更多