从VB脚本调用宏

时间:2013-02-19 09:00:33

标签: excel-vba vbscript vba excel

您好我正在尝试使用以下VB脚本调用test.xls中的宏

Option Explicit

Dim returnVal 
returnVal = 0
WScript.Echo returnVal

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("D:\test.xls", 0, True)
xlApp.Run "macro1"
xlBook.Close false
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo returnVal
''WScript.Quit returnVal

test.xls中定义的宏是:

Dim returnVal as Boolean
sub macro1()
   returnVal = 1
   Exit Sub
...
End Sub

当我尝试运行VB脚本时,我得到一个值为0的弹出窗口(这是我在开始时所做的回显)。然后我再次得到一个值为0的弹出窗口。看起来没有返回宏的值。

我在哪里错了。

谢谢, 莫妮卡

1 个答案:

答案 0 :(得分:2)

将宏定义为函数:

Function macro1()
    macro1 = 1
End Function

然后得到值:

returnVal = xlApp.Run("macro1", "My Application")

在此处查找更多示例:
http://support.microsoft.com/kb/306682