У меня есть следующий код VBA (который проживает в 2007 книге Excel):Доступное значение возврата из функции VBA в .NET?
Public Function Multiply(a As Double, b As Double) As Double
Multiply = a * b
End Function
Если я вызываю Multiply из другого кода VBA, он возвращает правильное значение. Однако, когда я называю Умножение C#:
var excel = new Application {Visible = true};
excel.Workbooks.Open(filename);
var returned = excel.Run("Sheet1.Multiply", (Double) a, (Double) b);
... умножение происходит (я могу проверить это, добавив трассировку функции Multiply в VBA), но возвращаемое значение не доступно в моем C# код ; returned
всегда null
.
Не могли бы вы рассказать мне, как получить возвращаемое значение Multiply из моего кода на C#?
Я смог обойти это, изменив Multiply(), чтобы установить значение ячейки в возвращаемое значение и считывая значение этой ячейки из C#. Уродливый, но он работает. –
Любая идея, почему она работает с модулем, но не с листа? – anakic
Нет. Я боюсь. Я на самом деле не делал существенной работы над Microsoft с 2011 года, так что это, вероятно, будет идти без ответа, если кто-то из них не сможет помочь ... –