Проблема с методом Sheet.FindAll - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь найти все ячейки, которые точно соответствуют строке "Sub-Total".Когда я запускаю приведенный ниже код, код прерывается до второго context.sync().Я изо всех сил пытаюсь понять, почему клетки не найдены и выделены ниже.Любая помощь будет принята с благодарностью!

При выполнении приведенного ниже я ожидаю, что все ячейки в столбце А, которые точно соответствуют "Sub-Total", будут выделены жирным шрифтом.

        Excel.run(function (context) {
            var sheet = context.workbook.worksheets.getActiveWorksheet();
            var subTotals = sheet.findAll("Sub-Total", {
                completeMatch: true,
                matchCase: true
            });

            return context.sync().
                then(function () {
                    subTotals.format.font.bold = true;
                    var aaColumn = sheet.getRange("A:A");
                    aaColumn.format.autofitColumns();
                    return context.sync();
                })

        }).catch(function (error) {
            console.log("Error: " + error);
            if (error instanceof OfficeExtension.Error) {
                console.log("Debug info: " + JSON.stringify(error.debugInfo));
            }
        });

Кодбудет работать в течение первого context.sync, а затем перерыв.

1 Ответ

0 голосов
/ 10 июня 2019

Ваш код работает для меня, хотя у вас есть ненужный context.sync. Попробуйте это:

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();

    var subTotals = sheet.findAll("Sub-Total", {
      completeMatch: true,
      matchCase: true
    });

    subTotals.format.font.bold = false;
    var aaColumn = sheet.getRange("A:A");
    aaColumn.format.autofitColumns();

    return context.sync();
});

UPDATE

Вот сущность , которую вы можете импортировать в инструмент Script Lab . Давайте посмотрим, работает ли он у вас в Script Lab, а затем возьмем его оттуда.

Кстати, я не вижу контекста, в котором вы вызываете Excel.run, но он возвращает объект Promise, поэтому вам следует попробовать поставить ключевое слово return перед ним. Смотрите суть для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...