Google脚本UI.Button调用其他功能的提示



我有两个单独的脚本,这些脚本被表格中的按钮激活。一个发送电子邮件(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();
 }
 }

无论是将它们放在单独的文件还是在同一文件中,它们都需要是单独的函数。除非您希望每次访问功能时运行。

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

注意:我没有测试它们,也不关心。

最新更新