我有两个单独的脚本,这些脚本被表格中的按钮激活。一个发送电子邮件(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();
}
}
注意:我没有测试它们,也不关心。