我在一个非常奇怪的情况。我创建了一个可以打开我的excel文件的vbs脚本。我已经在WorkBook_open方法中定义了vba代码。我认为创建一个vbs脚本来打开我的excel将调用我的workBook_open方法并执行其中的vba代码。但是我错了。以下是我的vbs代码。vbScript打开excel但不加载宏/模块?
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应用程序,这就是它的全部功能。我在module1,module2中有宏代码。在下面的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
但是,从命令行运行它时,它给我的运行时错误所需对象:'关闭'。任何想法为什么?为什么它没有关闭?我究竟做错了什么?谢谢。
只是一个穿越所有t的思想 - >你有你的Excel应用程序设置为信任VBA? –
2个更多的想法 - 。 1)你可以尝试“E:\ data_extracts \ mydata.xlsm!RefreshDataFromIQY”或“E:\ data_extracts \ mydata.xlsm!Module1.RefreshDataFromIQY”2)如果“RefreshDataFromIQY”是一个私人子/功能,它可能无法工作这可能不适用于你,但只是想我会添加它在 –