我有这个简单的功能为excel函数应该是静态的,而COM对象方法不应该:重复“实现”真的必要?
public double MYSUM(double x, double y)
{
return x + y;
}
在Excel-DNA用它我可以
- 声明它
static
,并通过[ExcelFunction(Description = "blah")]
这将最终导致Excel函数preceed它。 - 非声明它
static
并声明[ComVisible(true)]
和[ClassInterface(ClassInterfaceType.AutoDual)]
含有它的类,这将最终导致COM类可调用在VBA
由于以前的情况下,互相排斥的static
/非static
要求,我的结论我无法编码一个时间(即在一个地方)MYSUM
并实现使其可用作Excel函数以及COM对象的方法。我错了吗 ?
(当然,我可以做两个合适的声明都包裹了独特double underlyingMYSUM(double, double)
做的工作,但我还是不得不在两个地方写我的函数VBA和Excel曝光。)