如何input数组公式

数组公式是使用Ctrl + Shift + Enter在Excel中input的公式。

使用Excel API,当我读取一个数组公式( Range.formulas属性)时,我得到类似[["{=SUM(IF(A1:A10>50,1))}"]]

当我尝试将此公式写回到工作表时,它会input一个常量string(因为括号)。 如果我删除括号并input公式,它将作为普通公式input,而不是数组。

我如何input数组公式?


在VBA中,当您读取一个数组公式时,它会返回没有括号的公式。 当你想input一个数组公式时,你可以写range.FormulaArray = =SUM(IF(A1:A10>50,1)) (同样没有括号)。

保持两个plataform(JS和VBA)是一致的,并且还提供像Range.FormulaArrayRange.HasArrayRange.CurrentArray这样的属性。

Range.formulas属性可用于读取或设置范围内单个单元格的公式。 下面的代码片段使用值(通过指定值的二维数组)来填充范围C3:D5 ,然后设置Range.formulas属性(通过指定公式的二维数组),使单元格D5中的公式(即,位于指定范围的第3行,第2列的单元格) =SUM(D3,D4)

 Excel.run(function (ctx) { var sheetName = "Sheet1"; var rangeAddress = "C3:D5"; var values = [["First Number", 1000], ["Second Number", 200], ["Difference", null]]; var formulas = [[null, null], [null, null], [null, "=SUM(D3,D4)"]]; var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress); range.values = values; range.formulas = formulas; range.load('text'); return ctx.sync().then(function () { console.log(range.text); console.log(range.formulas); }); }).catch(errorHandlerFunction); 

重新添加对您提到的其他属性的支持,如果您想将此build议添加到Office开发者平台UserVoice ,则其他用户可以在此处投票,从而使Office PM团队能够了解总体优先级/需求因为他们计划未来对API的改进。


UPDATE

当前不支持使用Excel JavaScript API设置数组公式 (比如在用户界面中使用Ctrl + Shift + Enter )。 Office开发者平台UserVoice是跟踪此function请求的正确位置。