Возвращение формулы массива с помощью пользовательской функции Excel - PullRequest
0 голосов
/ 02 июля 2019

Я хочу вернуть несколько значений или формулу массива без выбора диапазона в Excel с помощью функции.

# excel custom function 
async function add(first, second) {
    try {

        Excel.run(async context => {
            # selecting active worksheet
            const worksheet = context.workbook.worksheets.getActiveWorksheet(); 


            # selecting range
            const range = worksheet.getRangeByIndexes(0, 0, 1, 4); 


            # set values for selected range
            range.values = [[1, 2, 3, 4]]; 

            return context.sync();
        });
    } 
    catch(err) {
        return err.message;
    }
}

# mapping function with key
CustomFunctions.associate("ADD", add);

1 Ответ

2 голосов
/ 02 июля 2019

Спасибо за размещение этого вопроса. В настоящее время для активации того, что вы запрашиваете, требуется Динамические массивы Excel . Эта функция все еще находится в режиме preview , и вы можете начать тестирование на нее, присоединившись к каналу Insiders (в Windows и Mac).

  1. Присоединитесь к программе Office 365 Developer, если вам нужен арендатор: https://aka.ms/O365DevProgram.
  2. Получите арендатора и после установки нажмите Установить программное обеспечение, чтобы загрузить Office (при необходимости)
  3. Посмотрите на insiders.office.com, чтобы следовать инструкциям по переключению каналов.
  4. Запустите Excel и попробуйте эту формулу "= MUNIT (10)"
  5. Если он возвращает массив 10x10, вы находитесь на канале инсайдеров.
  6. Оказавшись на канале инсайдеров, вы можете просто вернуть этот массив из своей функции, т. Е. return [[1, 2, 3, 4]];, и Excel будет динамически разливаться или возвращать #SPILL! ошибка, если она собиралась перекрывать определенные значения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...