Скрипт приложения Google Sheets - оповещение не выполняется по порядку - PullRequest
0 голосов
/ 06 апреля 2019

Я создаю «файл-обход» для своего Google Sheet, чтобы пользователи могли понять, как им пользоваться.В настоящее время я активирую диапазоны, а затем выдаю предупреждение, чтобы показать пользователю некоторый контекст об этом диапазоне.Однако строки выполняются не по порядку.

Я пытался разбить оповещения и выборки на отдельные функции, используя Utilities.sleep (5000) и выделяя с помощью setBackground () вместо активации, но все имеет тот же результат.Даже если у меня есть только одна активация и одно предупреждение, оно, кажется, срабатывает не по порядку

function setup_file_walkthrough(){
        var budgetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Budget');
        var ui = SpreadsheetApp.getUi();

        budgetSheet.activate();
        ui.alert('This is the budget tab ...');

        budgetSheet.getRange('F:F').activate();
        ui.alert('This is a column...');
}

Я ожидаю, что будет выбран лист / диапазон, затем появится всплывающее сообщение.Пользователь нажимает OK, затем переходит к выбору следующего диапазона, появляется другое сообщение и т. Д.

Однако все, что я пробовал, приводит к одному и тому же: все сообщения всплывают одно за другим без каких-либоизменить в листе, то он идет прямо до последнего .активировать.Как будто я написал это так (на самом деле эти 2 фрагмента кода дают мне один и тот же результат):

function setup_file_walkthrough(){
        var budgetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Budget');
        var ui = SpreadsheetApp.getUi();

        ui.alert('This is the budget tab ...');
        ui.alert('This is a column...');
        budgetSheet.getRange('F:F').activate();
}

1 Ответ

0 голосов
/ 06 апреля 2019

Попробуйте это:

function walkThru() {
  var ss=SpreadsheetApp.getActive();
  var shts=ss.getSheets();
  for(var i=0;i<shts.length;i++) {
    var msg=Utilities.formatString('This is sheet %s.', shts[i].getName());
    shts[i].getRange("A1").activate();
    SpreadsheetApp.flush();
    SpreadsheetApp.getUi().alert(msg);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...