【问题标题】:Google Sheets App Script - Alert Not Executing In OrderGoogle 表格应用程序脚本 - 警报未按顺序执行
【发布时间】:2019-04-07 02:55:15
【问题描述】:

我正在为我的 Google 表格创建一个“文件演练”,以帮助用户了解如何使用它。我目前正在激活范围,然后发出警报以向用户显示有关该范围的一些上下文。但是,这些行没有按顺序执行。

我尝试使用 Utilities.sleep(5000) 将警报和选择拆分为单独的函数,并使用 setBackground() 而不是 activate 突出显示,但一切都具有相同的结果。即使我只有一个激活和一个警报,它似乎也触发了故障

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...');
}

我希望选择工作表/范围,然后会出现一条弹出消息。用户单击确定,然后继续选择下一个范围,并出现另一条消息,等等。

但是,我尝试过的所有结果都是一样的:所有消息一个接一个地弹出,工作表中没有任何变化,然后直接进入最后一个 .activate。几乎就像我是这样写的(事实上,这 2 个代码 sn-ps 给了我相同的结果):

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();
}

【问题讨论】:

标签: javascript google-apps-script google-sheets


【解决方案1】:

试试这个:

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);
  }
}

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 2022-06-15
    • 2015-07-04
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2014-03-26
    相关资源
    最近更新 更多