Чтобы скопировать отдельные формулы из области в другую, мы можем использовать непосредственно rangeTarget.formulas = rangeSource.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 Online, ярлык Ctrl+Alt+Enter
не работает (на клавиатуре Mac).
ОК ... И, можно вручную ввести формулу массива в Excel Online? – SoftTimur
Не уверен ... Хотя я думаю, что если вы загрузите книгу, которая имеет ее, она, вероятно, будет правильно ее обрабатывать. –
Да, он обрабатывает существующие формулы массивов ... – SoftTimur