Поле YesNo не завершает код при выборе «Нет» - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать макрос, чтобы в окне подсказки отображалось действие типа «Хотите очистить лист?»с вопросом да или нет.Если ДА, удалить указанные ячейки. Если НЕТ, ничего не делать.

Условие ДА работает.Но я не могу заставить НЕТ работать.Даже если я нажму НЕТ, он все равно выполнит команду очистки.Что я делаю не так?

Я плохо разбираюсь в кодировании.Я просто полагаюсь на 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 {}
}

Даже если щелкнуть NO в командной строке, он все равно выполнит команду clearContent.

1 Ответ

0 голосов
/ 02 февраля 2019

Вы не используете response правильно.Он содержит значение UI.Button.YES или UI.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);{, который удаляет и мой ответ.)

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