2013-02-19 150 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