从.NET中的VBA函数访问返回值?

Dun*_*yne 6 .net c# excel vba office-interop

我在VBA中有以下代码(驻留在Excel 2007工作簿中):

Public Function Multiply(a As Double, b As Double) As Double
    Multiply = a * b
End Function
Run Code Online (Sandbox Code Playgroud)

如果我从其他VBA代码调用Multiply,它将返回正确的值.但是,当我从C#调用Multiply时:

var excel = new Application {Visible = true};
excel.Workbooks.Open(filename);
var returned = excel.Run("Sheet1.Multiply", (Double) a, (Double) b);
Run Code Online (Sandbox Code Playgroud)

...乘法发生(我可以通过向VBA中的Multiply函数添加跟踪来验证这一点)但是返回的值在我的C#代码中不可用; returned永远null.

有人可以告诉我如何从我的C#代码中获取Multiply的返回值吗?

小智 4

您是否尝试过将函数移至 Excel 中的常规模块(而不是工作表模块)?