【发布时间】:2018-09-21 20:16:49
【问题描述】:
我在一个数组中捕获了一个数据范围。我的数组的第 3 列保持不变,只有我的行需要增加,同时将此值分配给变量 matchindex。在将值分配给变量时,我收到 error 说明
'Çannot read property 3 from undefined'。
我在分配matchindex = data[i+2][3] 时遇到此错误。
谁能解释一下出了什么问题?
下面是我的脚本
function testrange() {
var spreadsheet = SpreadsheetApp.getActive();
var i=0;
var temp1 =2;
var temp2 =2;
var startrow;
var endrow;
var matchindex;
var ssVillage = spreadsheet.setActiveSheet(spreadsheet.getSheetByName('VillageName'),true);
var range = ssVillage.getDataRange();
var data = range.getValues();
var lastcol = ssVillage.getLastColumn();
for (i=0;i<data.length;i++)
{
matchindex = data[i+2][3];
temp1 = matchindex;
if(temp1 !== temp2) {
// spreadsheet.setNamedRange(ssVillage.getRange("B"+startrow).getValue(),ssVillage.getRange("A"+startrow +":A"+endrow).activate() );
spreadsheet.setNamedRange(data[i+2][startrow],ssVillage.getRange("A"+startrow +":A"+endrow).activate() );
if (i+2 == matchindex) {
startrow = (i+2);
endrow = i+2;
}
else {
endrow = i+2;
}
}
else {
if (i+2 == matchindex) {
startrow = (i+2);
endrow = i+2;
}
else {
endrow = i+2;
}
}
temp2 = matchindex;
}
}
【问题讨论】:
-
所以基本上数组中不存在该值。你检查你的阵列了吗?
-
yes..Array 显示我检查时的值。我想做的是根据 col B 值为 col A 定义命名范围。此外,我在定义命名范围时遇到错误。当我使用 logger.log 在 for 循环之外检查时,值显示正确
标签: javascript google-apps-script