2016-07-01 3 views
0

Чтобы скопировать отдельные формулы из области в другую, мы можем использовать непосредственно 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):

enter image description here

Так кто-нибудь знает, как правильно копировать формулу массива?

Кроме того, я не знаю, как вводить форму массива вручную в Excel Online, ярлык Ctrl+Alt+Enter не работает (на клавиатуре Mac).

ответ

0

Формулы Array в настоящее время не поддерживаются API-интерфейсами Office.js Excel. Тем не менее, пожалуйста, не стесняйтесь предложить/проголосовать за него на https://officespdev.uservoice.com/

~ Майкл Златковский, разработчик на офис расширяемости Team, MSFT

+0

ОК ... И, можно вручную ввести формулу массива в Excel Online? – SoftTimur

+1

Не уверен ... Хотя я думаю, что если вы загрузите книгу, которая имеет ее, она, вероятно, будет правильно ее обрабатывать. –

+0

Да, он обрабатывает существующие формулы массивов ... – SoftTimur

Смежные вопросы