我处于一个非常奇怪的情况。我创建了一个可以打开我的 excel 文件的 vbs 脚本。我在 WorkBook_open 方法中定义了 vba 代码。我认为创建一个 vbs 脚本来打开我的 excel 会调用我的 workBook_open 方法并执行其中的 vba 代码。但是我错了。下面是我的vbs代码。
filePath = "E:\data_extracts\mydata.xlsm"
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Open(filepath)
oExcel.Visible = True
oExcel.Run "RefreshDataFromIQY"
oExcel.ActiveWorkbook.Save
oExcel.ActiveWorkbook.Close
oExcel.Quit
Set oExcel = Nothing
在调试时,它在 oExcel.Run "RefreshDataFromIQY" 处失败,说明宏不可用或已禁用。因此,代码只是成功打开了 excel 应用程序,仅此而已。我在模块 1、模块 2 中有宏代码。我如何/在哪里编写以在下面的 vbs 脚本中执行我的宏。我的宏/模块必须按顺序执行,我的一些宏是录制的宏。任何帮助深表感谢。谢谢。
感谢您的意见斯科特。这是我对代码所做的更改
Dim oExcelApp
Dim oExcelWkb
set oExcelApp = createobject("Excel.Application")
set oExcelWkb = oExcelApp.Workbooks.Open("\\myserver\data_extracts\TestTOPTMay307.xlsm")
oExcelWkb.Close True
oExcelApp.Quit
但是,在从命令行运行它时,它给了我运行时错误 Object required: 'Close'。知道为什么吗?为什么无法关闭?我究竟做错了什么?谢谢。