我创建了一个"测试" Excel表格的Sheet1中的宏"数据"并尝试从vbs文件中调用它
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\xxx\xxxx\xxxx\VB\Data.xlsm")
objExcel.Application.Run "C:\xxx\xxxx\xxxx\VB\Data.xlsm!Sheet1.Test"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
我收到以下错误:此工作簿中可能无法使用该宏,或者可能禁用所有宏。 代码:800A03EC
我将宏安全性更改为"启用所有宏"并检查"信任对VBA项目模型的访问"在Developer Macro设置下。但仍然没有运气
答案 0 :(得分:3)
您可以在没有Run的情况下尝试它,您可以从工作簿和工作表对象中明确调用您的函数!
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\xxx\xxxx\xxxx\VB\Data.xlsm")
Set Sheet1 = objWorkbook.Sheets(1)
Sheet1.Test
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Quit
答案 1 :(得分:1)
谢谢大家,我找到了上述问题的解决方案。可能是问题是,我试图在不打开excel工作簿的情况下运行宏,但不确定。无论如何这是工作代码。我现在能够从vbs运行宏
Option Explicit
Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")
set XlBook = xlApp.Workbooks.Open("C:\xxx\xxx\xxx\xxx\Data.xlsm")
xlApp.Run "Sheet1.Test"
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
set xlApp = Nothing
WScript.Echo "Finished"
WScript.Quit