Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 为什么布尔值被记录为未定义的复选框?_Javascript_Google Apps Script - Fatal编程技术网

Javascript 为什么布尔值被记录为未定义的复选框?

Javascript 为什么布尔值被记录为未定义的复选框?,javascript,google-apps-script,Javascript,Google Apps Script,我试图记录check变量的值,它是第11列。这是一个复选框,如果勾选或未勾选,则应显示为true或false。然而,我得到一个日志,说这个值是未定义的,我不太确定为什么会这样 有人能帮忙吗?我已发表评论供你参考 function sendEmail() { //setup function var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var StartRow = 2; var Row

我试图记录check变量的值,它是第11列。这是一个复选框,如果勾选或未勾选,则应显示为true或false。然而,我得到一个日志,说这个值是未定义的,我不太确定为什么会这样

有人能帮忙吗?我已发表评论供你参考

function sendEmail() {

 //setup function
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 2;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,11);
 var AllValues = WholeRange.getValues();

 var message = "";
 for (i in AllValues) {

 var CurrentRow = AllValues[i];

 var EmailSent = CurrentRow[13];


//problem here
   var check = CurrentRow[11];
   Logger.log(check)




 if (EmailSent == "sent") 
     continue;

 //set HTML template for information
  message +=
      "<p><b>Timestamp by: </b>" + CurrentRow[1] + "</p>" +
      "<p><b>Requester Email: </b>" + CurrentRow[2] + "</p>" +
      "<p><b>Star Rating: </b>" + CurrentRow[3] + "</p>" +
      "<p><b>Request Category: </b>" + CurrentRow[4] + "</p>" +
      "<p><b>Description: </b>" + CurrentRow[5] + "</p>" +
      "<p><b>Label: </b>" + CurrentRow[6] + "</p>" +
      "<p><b>Ticket ID: </b>" + CurrentRow[7] + "</p>" +
      "<p><b>Comment: </b>" + CurrentRow[8] + "</p>" +
      "<p><b>Status: </b>" + CurrentRow[9] + "</p><br><br>";

  var setRow = parseInt(i) + StartRow;

  ActiveSheet.getRange(setRow, 13).setValue("sent");
}

 var SendTo = "email@email.org.au" + "," + "email@email.org.au";

 var Subject = "CT IT feedback";


  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
});
}
函数sendmail(){ //设置功能 var ActiveSheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var StartRow=2; var RowRange=ActiveSheet.getLastRow()-StartRow+1; var WholeRange=ActiveSheet.getRange(StartRow,1,RowRange,11); var AllValues=WholeRange.getValues(); var message=“”; 对于(所有值中的i){ var CurrentRow=所有值[i]; var EmailSent=CurrentRow[13]; //这里有问题 var检查=当前行[11]; Logger.log(检查) 如果(EmailSent==“已发送”) 继续; //为信息设置HTML模板 信息+= 时间戳由:“+CurrentRow[1]+”

”+ 请求者电子邮件:“+CurrentRow[2]+”

”+ 星级:“+CurrentRow[3]+”

”+ 请求类别:“+CurrentRow[4]+”

”+ “说明:”+CurrentRow[5]+“

”+ 标签:“+CurrentRow[6]+”

”+ “票证ID:+CurrentRow[7]+”

”+ “注释:“+CurrentRow[8]+”

”+ 状态:“+CurrentRow[9]+”



”; var setRow=parseInt(i)+StartRow; ActiveSheet.getRange(setRow,13).setValue(“已发送”); } 变量SendTo=”email@email.org.au" + "," + "email@email.org.au"; var Subject=“CT IT反馈”; MailApp.sendmail({ 收件人:SendTo, 抄送:“, 主题:主题,, htmlBody:message, }); }
如上所述,如果要从工作表中获取值,则需要考虑使用嵌套for循环进行循环。 我不熟悉您在代码片段中使用的那些函数,但为了学习,我在下面的一张表格中提供了一个如何单步执行的示例

见下面的例子

var表=[
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
];
//将上面的数组视为工作表。
//您将走1、2、3、4步,然后走下一排
//到5、6、7、8等等。
var rows=sheet.length;
var行数;
对于(变量i=0;i
首先,用于迭代对象的属性,而不是数组。我建议改用。因此,尝试改变这一点:

 for (i in AllValues) {

   var CurrentRow = AllValues[i];

   // Rest of code in loop

}
为此:

AllValues.forEach(function(CurrentRow) {

  // Rest of code in loop

})

除此之外,
CurrentRow
只在索引10之前运行,因此它无法访问
CurrentRow[11]
CurrentRow[13]
。因此,当您定义
WholeRange
时,您应该至少选择14列:

var WholeRange = ActiveSheet.getRange(StartRow, 1, RowRange, 14);

希望这对你有用

您是否获得了所有其他值而不是复选框?您是否同时考虑列和行以确保目标值正确?是的,所有其他值都是未定义的,我已确保列和行都是未定义的,因为我已检查了指向此列的每一列,您需要查看使用嵌套for循环。从a1开始,一步一步走到a。完成后,请走下一排。将创建一个基本的二维阵列示例,供您在下面演示。