写数组公式

Write array formulas

要将单个公式从一个区域复制到另一个区域,我们可以在加载 rangeSource.formulas 后直接使用 rangeTarget.formulas = rangeSource.formulas。不过这个方法好像不适用于数组公式。

例如A1:A8包含一个数组公式{=B1:B8+10},下面的代码试图将这个数组公式复制到C1:C8

function test () {
    Excel.run(function (ctx) {
        var r0 = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1:A8");
        r0.load(["formulas"]);
        return ctx.sync().then(function () {
            var r1 = ctx.workbook.worksheets.getItem("Sheet1").getRange("C1:C8");
            r1.formulas = r0.formulas;
        });
    });
}

这是结果(Excel在线,Excel为Windows):

那么有谁知道复制数组公式的正确方法是什么?

此外,我不知道如何在 Excel 网上手动输入数组公式,快捷键 Ctrl+Alt+Enter 似乎不起作用(在 Mac 键盘上)。

Office.js Excel API 当前不支持数组公式。但是,请随时在 https://officespdev.uservoice.com/

上建议/投票

~ Michael Zlatkovsky,Office 可扩展性团队开发人员,MSFT