检查宏样式Excel UDF中的数组公式

时间:2015-06-24 13:21:54

标签: excel excel-addins excel-dna netoffice

我使用Excel-DNA在Excel和NetOffice中创建UDF,以实现与版本无关的自动化调用。在宏类型函数中,我能够使用以下内容从单元格中获取公式:

ExcelReference cellRef; // of course in reality this is assigned
var formula = (string)this.excelCall(XlCall.xlfGetFormula, cellRef);

另外,我想知道这是否是数组公式的一部分,如果是,那么它的范围是多少。使用Excel自动化,我可以使用类似的东西:

Range("A1").HasArray
Range("A1").CurrentArray.Address

但是,Microsoft不鼓励在UDF调用中使用自动化:https://support.microsoft.com/en-us/kb/301443

那么,有没有办法通过C API获取HasArray和CurrentArray属性,或者有人知道它是否可以(在声明为宏类型的UDF的上下文中)使用自动化?

1 个答案:

答案 0 :(得分:1)

信息type_num 49的GET.CELL信息函数将返回该单元格是否为数组的一部分。从您的Excel-DNA(宏型)功能:

bool isArray = (bool)XlCall.Excel(XlCall.xlfGetCell, 49, cellRef);