Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异常:参数不能为null:google脚本中出现提示错误_Javascript_Google Sheets - Fatal编程技术网

Javascript 异常:参数不能为null:google脚本中出现提示错误

Javascript 异常:参数不能为null:google脚本中出现提示错误,javascript,google-sheets,Javascript,Google Sheets,我创建了一个带有确认弹出窗口的邮件合并,以确认脚本最近没有运行,并再次检查用户是否打算发送电子邮件。脚本工作得很好,但令人烦恼的是,我在运行时收到以下错误: 陈述;异常:参数不能为null:提示 如果可能的话,我想把它处理掉。我附上我的密码 //创建发送多少电子邮件以及发送到多少分支机构的功能日志 函数确认窗口(){ var numberSent=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRa

我创建了一个带有确认弹出窗口的邮件合并,以确认脚本最近没有运行,并再次检查用户是否打算发送电子邮件。脚本工作得很好,但令人烦恼的是,我在运行时收到以下错误:

陈述;异常:参数不能为null:提示

如果可能的话,我想把它处理掉。我附上我的密码

//创建发送多少电子邮件以及发送到多少分支机构的功能日志
函数确认窗口(){
var numberSent=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRange('D3').getValue();
var numberofivos=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRange('D2').getValue();
var ui=SpreadsheetApp.getUi();
var ui=SpreadsheetApp.getUi();
用户界面警报(
“您已成功地将“+numberOfVios+”违规行为发送到“+numberSent+”分支。”,)
}
函数saveData(){
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log');
变量日期=新日期()
var user=Session.getActiveUser().getEmail();
var range=ss.getRange(“A:B”)
var numberSent=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRange('D2').getValue();
var branchNumber=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRange('D3').getValue();
ss.appendRow([日期、用户、编号、分支编号]);
}
var EMAIL_SENT=‘True’;
函数sendEmails(){
var sheet=SpreadsheetApp.getActive().getSheetByName('Output');
var sheetI=SpreadsheetApp.getActive().getSheetByName('Input');
var sheetC=SpreadsheetApp.getActive().getSheetByName('Control');
var emailNum=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Validations').getRange('D3').getValue();
var startRow=2;
var numRows=emailNum;
var dataRange=sheet.getRange(startRow,1,numRows,6);
sheetI.setTabColor(“ff0000”);
saveData()
var data=dataRange.getValues();
用于(数据中的var i){
var行=数据[i];
var emailAddress=第[3]行;
var消息=行[5]+“\n\nT\n\nT\n\nT”;
var message=message.replace(/\n/g,
); var主题=第[4]行; sendmail(emailAddress,subject,message,{htmlBody:message}); sheet.getRange(startRow+i-18,8).setValue(已发送电子邮件); sheetC.getRange(startRow+i-18,3).setValue(已发送电子邮件); SpreadsheetApp.flush(); } 确认窗口() } 函数recentSend(){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log'); var lastR=sheet.getLastRow(); var recentRun=sheet.getRange('A'+lastR.getValue(); 如果(lastR=1){var recentlySent='False'} var today=新日期()。valueOf()) var recentDate=recentRun var-sec=1000; var最小值=60*秒; var小时=60*min; var日=24*小时; var差异=今天-最近日期 var hourDifference=数学下限(差异%天/小时); if(hourDifference>'12'){var recentlySent='False'} else{var recentlySent='True'} 返回(最近) } 函数recentlySentTrue(){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log'); var lastR=sheet.getLastRow(); var recentUser=sheet.getRange('B'+lastR.getValue(); var recentQuant=sheet.getRange('C'+lastR.getValue(); var recentT=sheet.getRange('A'+lastR.getValue(); var recentSendLog=recentT.toString(); var recentTime=recentSendLog.slice(16,21) var recentDate=recentSendLog.slice(0,11) var ui=SpreadsheetApp.getUi(); var result=ui.alert( “您确定要发送吗?”, “用户,”+recentUser+”,最近在“+recentDate”的“+recentTime+”发送了“+recentQuant+”电子邮件, ui.按钮集。是\否); 如果(结果==ui.Button.YES){ 警报(recentlySentFalse()); } 否则{ } } 函数recentlySentFalse(){ var ui=SpreadsheetApp.getUi(); var ui=SpreadsheetApp.getUi(); var result=ui.alert( “您确定要发送吗?”, '您确定要发送这些违规行为吗?', ui.按钮集。是\否); 如果(结果==ui.Button.YES){ ui.alert(sendmails()); }否则{ } } 函数确认(){ var recentlySent=recentSend(); if(recentlySent==“True”){ 最近的真实情况() } else{recentlySentFalse() } }
说明

您的
ui.alert()
调用包含函数参数,例如
recentlysentflse()
,这些函数没有返回语句,因此它们返回默认值
null
ui.alert()
调用至少需要一条提示消息

解决方案1:

将函数调用置于UI警报消息之后:

      if (result == ui.Button.YES) {

        ui.alert('Sending message...');
        recentlySentFalse();
    }   
解决方案2:

如果不希望出现过多的警报,只需删除ui.alert并立即调用该函数

      if (result == ui.Button.YES) {

        recentlySentFalse();
    }   
参考文献: