![](/img/trans.png)
[英]Google Apps Script Error: “Cannot read property 'length' of undefined”
[英]Cannot read property “0” from undefined. Error Google Apps Script
我正在获取无法从未定义中读取属性“ 0”。 第16行发生错误。(而(colunaDias [emptyCell] [0] <= dias))
对于Google SpreadSheets,这应该是一个非常简单的功能。 我看不到我在做什么错...
奇怪的是,如果我不使用变量“ dias”,而是使用整数。 while函数起作用。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var leadsSheet = ss.getSheetByName("Leads Todas as Categorias, menos outros - Days (5days)");
var targetSheet = ss.getSheetByName("feticaria");
var cellLeads = leadsSheet.getRange(1,1).getValue();
//var cellTarget = targetSheet.getRange(1,1).setValue(valor);
var colunaDias = leadsSheet.getRange('B:B').getValues();
var sourceMedium = leadsSheet.getRange('A:A').getValues();
var emptyCell = 16;
var dias = 1;
while (colunaDias[emptyCell][0] != ""){
while (colunaDias[emptyCell][0] <= dias){
dias++;
emptyCell++;
}
emptyCell++;
}
Logger.log(emptyCell);
}
我猜colunaDias[emptyCell]
是未定义的。 它通过了第一个while
条件,因为“ undefined”不等于“”。 如果未定义colunaDias[emptyCell]
,则此行有问题:
var colunaDias = leadsSheet.getRange('B:B').getValues();
要么
colunaDias[emptyCell][0]
问题是“ emptyCell”是16。 getValues()
返回矩形值网格的对象。 我将通过检查[0] [0]来测试矩形网格中是否有任何东西。
Logger.log('is there any data? ' + colunaDias[0][0])
如果没有数据,则某些操作失败:
var colunaDias = leadsSheet.getRange('B:B').getValues();
如果那条线工作正常,那么更高的位置是错误的。
您应该检查getSheetByName
的返回类型getSheetByName
为null。
// The code below will log the index of a sheet named "YourSheetName"
var leadsSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YourSheetName");
if (leadsSheet != null) {
Logger.log(leadsSheet.getIndex());
}
我认为,可能导致该错误的唯一原因是emptyCell
大于colunaDias
数组,即,如果工作表小于16行(如果此处显示的值正确)。
在第一while
之前添加此行:
Logger.log('emptyCell = '+emptyCell+' and colunaDias.length = '+colunaDias.length);
我测试了脚本的副本,该脚本的运行没有错误,除非我在1000行工作表上定义emptyCell
> 1000。
我知道几年前的这篇文章,但这是我遇到的最接近的问题。 我只想发布我的答案,以防其他人有一天在这里结束。
由于某种原因,检查变量“ dias”作为字符串传递。 这就是为什么用数字替换它可以使脚本运行。
dias = parseInt(dias); //use this before the variable needs to be read
我不能说为什么它在被++之后传递字符串,但这会解决它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.