Google Sheet - если поставить галочку, создайте всплывающее сообщение с кнопкой - PullRequest
0 голосов
/ 13 апреля 2020

Я новичок в Google листах. Ранее у меня был некоторый фон C ++.

Я хотел бы написать собственный код, который выполняет следующее:

  1. Установите флажок
  2. Появляется подтверждающее сообщение
  3. Да подтверждает проверку, не снимает флажок.

В C функция может запускаться только один раз и завершается. Как мне написать код в листе Google, чтобы этот код постоянно проверял состояние флажка?

Есть ли какой-нибудь условный скрипт?

Ответы [ 2 ]

1 голос
/ 13 апреля 2020
function onEdit(e) {
  const sh=e.range.getSheet();
  if(sh.getName()=='Sheet14' && e.range.columnStart==1 && e.value=='TRUE') {
    var resp=SpreadsheetApp.getUi().alert('Message', SpreadsheetApp.getUi().ButtonSet.YES_NO);
    if(resp==SpreadsheetApp.getUi().Button.YES) {
      return;
    }else{
      e.range.setValue('FALSE');
    }
  }
}

Анимация:

enter image description here

Это то, что вы пытались, потому что это работает для меня:

function onEdit(e) {
  const sh=e.range.getSheet();
  if(sh.getName()=='Sheet14' && e.range.columnStart==1 && e.value=='TRUE') {
    var resp=SpreadsheetApp.getUi().alert('Message', SpreadsheetApp.getUi().ButtonSet.YES_NO);
    if(resp==SpreadsheetApp.getUi().Button.YES) {
      SpreadsheetApp.getUi().alert('Is this what you tried.  Because it works for me.')
      return;
    }else{
      e.range.setValue('FALSE');
    }
  }
}
1 голос
/ 13 апреля 2020

Вы можете попробовать использовать OnEdit Trigger , как предлагается в комментариях, и проверить значение флажка. Используйте информацию здесь , чтобы проверить значение флажка, а затем используйте некоторый вариант этого кода для создания всплывающего диалогового окна:

function showAlert() {
  var ui = SpreadsheetApp.getUi(); // Same variations.

  var result = ui.alert(
     'Please confirm',
     'Are you sure you want to continue?',
      ui.ButtonSet.YES_NO);

  // Process the user's response.
  if (result == ui.Button.YES) {
    // User clicked "Yes".
    ui.alert('Confirmation received.');
  } else {
    // User clicked "No" or X in the title bar.
    ui.alert('Permission denied.');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...