【问题标题】:Not able to execute macro from .vbs file无法从 .vbs 文件执行宏
【发布时间】:2016-12-28 10:36:46
【问题描述】:

我在 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 项目模型的访问”。但还是没有运气

【问题讨论】:

    标签: vba excel vbscript


    【解决方案1】:

    您可以在不运行的情况下尝试它,您可以从工作簿和工作表对象中显式调用您的函数!

    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
    

    【讨论】:

    • 太棒了!!它现在工作。谢谢你。我还通过使用运行找到了其他方式。我也发布了该代码并接受它作为答案
    • @Ravi Adabala,嘿,干杯!我知道你的其他方式,但是当通过Run 处理多应用项目时,我会感到紧张。
    【解决方案2】:

    谢谢各位,我找到了解决上述问题的方法。可能的问题是,我试图在不打开 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
    

    【讨论】:

    • 你知道你可以在不打开Workbook的情况下运行宏,对吧?这使它更快
    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多