是选择“否”时,否框不会终止代码

时间:2019-02-01 18:01:25

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

我正在尝试创建一个宏,以显示一个框提示,以确认诸如“您要清除工作表吗?”之类的操作。是或否的问题。 如果是,则删除给定的单元格 如果否,则不执行任何操作。

是条件起作用。但是我似乎无法使NO起作用。即使单击“否”,它仍然会执行clear命令。我在做什么错了?

我不太熟悉编码。我只是依靠Google。我试图将“ else”更改为“ End if”,也尝试了“ then”,但均无效果。我不确定如何停止运行代码。

function myFunction() {
var sh1=SpreadsheetApp.getActive();
  var sheet1=sh1.getSheetByName("Sheet1")

var sh=SpreadsheetApp.getUi();
  var response=sh.alert("Clear?",sh.ButtonSet.YES_NO)

  if(response.YES);{

  var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  sheet.getRange('b1:b21').clearContent();
  sheet.getRange('C13:C18').clearContent();
  }
  Else {}
}

即使从提示符处单击“否”,它仍然会执行clearContent命令。

1 个答案:

答案 0 :(得分:0)

您没有正确使用response。它包含一个UI.Button.YESUI.Button.NO值。正确的测试将是

function myFunction() {
  var sh1 = SpreadsheetApp.getActive();
  var sheet1 = sh1.getSheetByName("Sheet1")

  var sh = SpreadsheetApp.getUi();
  var response = sh.alert("Clear?", sh.ButtonSet.YES_NO)

  if(response == UI.Button.YES) {
    var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
    sheet.getRange('b1:b21').clearContent();
    sheet.getRange('C13:C18').clearContent();
  }
}

有关更多信息,请参见UI.Alert的文档

(在;之后,您在原始代码中还有if()if(response.YES);{被错放了,我的答案也删除了。)