我正在从Outlook宏运行Excel宏,我需要获取Excel宏的退货。
我的Outlook Macro的代码如下所示:
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
弹出并显示为true,但在Outlook中,我始终打印“ FALSE”。我滥用Run
吗? 最佳答案
其他人可能会有更详细的答案,但总而言之,您的逻辑是正确的。 Ive在从ThisWorkbook
调用自定义函数时总是遇到问题。使用您的确切代码,我可以通过将代码移至模块中来完成此工作
If excelApp.Run("Module1.Foo", true) Then
此question展示了类似的问题,试图将
ThisWorkbook
中的函数用作公式关于excel - 从运行中获取函数的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26718123/