我在VBA下面的代码(驻留在Excel 2007工作簿):从.NET中的VBA函数访问返回值?
Public Function Multiply(a As Double, b As Double) As Double
Multiply = a * b
End Function
如果我从其他VBA代码调用乘法,它返回正确的值。然而,当我打电话乘从C#:
var excel = new Application {Visible = true};
excel.Workbooks.Open(filename);
var returned = excel.Run("Sheet1.Multiply", (Double) a, (Double) b);
...乘法发生(我可以通过添加跟踪到VBA乘法功能验证这一点),但返回的值不可用在我的C#代码; returned
总是null
。
有人可以告诉我如何从我的C#代码获取Multiply的返回值吗?
我已经能够通过修改Multiply()将单元格的值设置为返回值并从C#中读取该单元格的值来解决此问题。丑,但它的作品。 – 2010-10-14 01:48:14
任何想法,为什么它从一个模块工作,但不是从工作表? – anakic 2015-04-22 16:21:15
没有,我很害怕。实际上我从2011年起就没有在微软的东西上做过任何重要的工作,所以这可能会得不到回答,除非其他人可以帮助... – 2015-04-22 22:43:38