2013-02-19 71 views
2

嗨调用宏,我尝试使用以下VB脚本中调用TEST.XLS宏从VB脚本

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的窗口。看起来来自宏的值没有被返回。

我在哪里错了。

感谢, 莫妮卡

回答

2

定义宏的功能:

Function macro1() 
    macro1 = 1 
End Function 

,然后得到的值:

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

可以找到更多的例子:
http://support.microsoft.com/kb/306682

+0

谢谢。这工作。在附注中,我们不能让宏返回一个值吗? – Monica 2013-02-19 12:33:28

+0

你可以使它成为一个norma Sub,但是这些var名称不对应,并且不能使用相同的名称进行修改。 – SysDragon 2013-02-19 12:41:07