Google Script ui.button вызывает подсказку из другой функции - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть два отдельных скрипта, которые активируются кнопками на листе.Один отправляет электронное письмо (CALemail.js), а другой очищает ячейки (clear.js).Оба сценария запрашивают подтверждение перед запуском.В то время как первый выполняется отлично, мой сценарий clear.js сначала запрашивает приглашение у CALemail, а затем запрашивает приглашение clear.js перед запуском.Как их разделить?

CALemail.js:

    var ehtml =  
    '<body>' + 
      '<h2>Calendar Updated</h2>' +
        '<p>You can access it by <a href="http://example.com">clicking here</a> </p>' +

    '</body>'   


 var ui = SpreadsheetApp.getUi();

 var response = ui.alert('You are sending a link to the current version of this calendar. Do you want to continue?', 
ui.ButtonSet.YES_NO);



 if (response == ui.Button.YES) function CALemail() {


  MailApp.sendEmail(
    'example@gmail.com',         // recipient
    ' Calendar Updated',                  // subject 
    'test', {                        // body
      htmlBody: ehtml                 // advanced options


    } );
} else {

}

clear.js:

function clearRange() {

var ui = SpreadsheetApp.getUi();
var response = ui.alert('STOP! You are attempting to clear the Calendar. THIS CANNOT BE UNDONE. Do you want to continue?', 
ui.ButtonSet.YES_NO);
var sheet = SpreadsheetApp.getActive().getSheetByName('Calendar');


 if (response == ui.Button.YES)

{

   sheet.getRange('B4:V10').clearContent();
  sheet.getRange('B12:V18').clearContent();
  sheet.getRange('B20:V26').clearContent();
  sheet.getRange('B28:V34').clearContent();
  sheet.getRange('B36:V42').clearContent();
  sheet.getRange('B44:C50').clearContent();
  sheet.getRange('D3:D43').clearContent();
  sheet.getRange('G3:G43').clearContent();
  sheet.getRange('J3:J43').clearContent();
  sheet.getRange('M3:M43').clearContent();
  sheet.getRange('P3:P43').clearContent();
  sheet.getRange('S3:S43').clearContent();
  sheet.getRange('V3:V43').clearContent();
  sheet.getRange('B53:V65').clearContent();
 }
 }

1 Ответ

0 голосов
/ 19 декабря 2018

Если вы помещаете их в отдельные файлы или в один и тот же файл, они должны быть отдельными функциямиЕсли вы не хотите запускать каждый раз при доступе к функции.

function testEmail(){
  var ehtml =  '<body><h2>Calendar Updated</h2><p>You can access it by <a href="http://example.com">clicking here</a> </p></body>';
  var ui = SpreadsheetApp.getUi();
  var response = ui.alert('You are sending a link to the current version of this calendar. Do you want to continue?',ui.ButtonSet.YES_NO);
  if(response == ui.Button.YES) function CALemail() {
    MailApp.sendEmail('example@gmail.com',' Calendar Updated','test',{htmlBody: ehtml});
   }
}

function clearRange(){
  var ui = SpreadsheetApp.getUi();
  var response = ui.alert('STOP! You are attempting to clear the Calendar. THIS CANNOT BE UNDONE. Do you want to continue?', ui.ButtonSet.YES_NO);
  var sheet = SpreadsheetApp.getActive().getSheetByName('Calendar');
  if (response == ui.Button.YES){
    sheet.getRange('B4:V10').clearContent();
    sheet.getRange('B12:V18').clearContent();
    sheet.getRange('B20:V26').clearContent();
    sheet.getRange('B28:V34').clearContent();
    sheet.getRange('B36:V42').clearContent();
    sheet.getRange('B44:C50').clearContent();
    sheet.getRange('D3:D43').clearContent();
    sheet.getRange('G3:G43').clearContent();
    sheet.getRange('J3:J43').clearContent();
    sheet.getRange('M3:M43').clearContent();
    sheet.getRange('P3:P43').clearContent();
    sheet.getRange('S3:S43').clearContent();
    sheet.getRange('V3:V43').clearContent();
    sheet.getRange('B53:V65').clearContent();
  }
}

Примечание: я их не проверял и мне тоже все равно.Это до вас.

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