我从Outlook宏运行Excel宏,并且需要获取Excel宏的返回值。从运行中获取函数的返回值
我的Outlook宏的代码如下所示:
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Workbooks.Open "C:\Users\meej\Documents\Book1.xlsm"
If excelApp.Run("ThisWorkbook.Foo", true) Then
Debug.Print "TRUE"
Else
Debug.Print "FALSE"
End If
excelApp.Quit
Set excelApp = Nothing
我的Excel宏看起来像这样:
Public Function Foo(ByVal result as Boolean) as Boolean
Foo = result
MsgBox Foo
End Function
我MsgBox
弹出并显示真实的,但在Outlook中我总是打印 “FALSE”。我是否滥用Run
?
从我收集你正在使用正常运行,因为它会返回一个布尔值,这是if语句想要的。这个问题可能在于'result'没有被正确转换。 – Matt 2014-11-03 16:56:14
@Matt嗯......但我看到它正确地从'MsgBox'打印? – 2014-11-03 17:01:27
可能是在错误的轨道上,但这个'MsgBox VarType(result)'在你的函数里面的结果 – Matt 2014-11-03 17:11:10