Google apps script 如何修复执行失败:TypeError:无法读取属性;0“;来自未定义?
我有一个表,其中一些行有对值(在第一列和第五列)始终在一起(例如,识别个人价值观) 价值观这不会重复(与某种事件相关的值)。我正在考虑当用户在行中键入第一个值时自动插入第二个值的最有效方法。(该工作表包含数千行,我想知道它是否有效)。 但当我运行代码时:Google apps script 如何修复执行失败:TypeError:无法读取属性;0“;来自未定义?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个表,其中一些行有对值(在第一列和第五列)始终在一起(例如,识别个人价值观) 价值观这不会重复(与某种事件相关的值)。我正在考虑当用户在行中键入第一个值时自动插入第二个值的最有效方法。(该工作表包含数千行,我想知道它是否有效)。 但当我运行代码时: var columnPredicted = getColumnNrByName(activeSheet, 'MY_COLUMN')+1; var activeCell = activeSheet.getActiveCell(); v
var columnPredicted = getColumnNrByName(activeSheet, 'MY_COLUMN')+1;
var activeCell = activeSheet.getActiveCell();
var activeRow = activeCell.getRow();
var givenValueCell = activeSheet.getRange(activeRow, 1);
var givenValue = activeCell.getValue();
var predictedCell = activeSheet.getRange(activeRow, columnPredicted);
var lastRow = activeSheet.getLastRow()-1;
var input = activeSheet.getRange(2, 1, lastRow, columnPredicted).getValues();
Logger.log("input = " + input);
for(var j=input.length; j>0; j--){
Logger.log("input = " + input[j][0]);
if (input[j][0] == givenValue) {
predictedCell.setValue(input[i][0]);
break;
}
}
我收到一条消息错误,说执行失败:TypeError:无法从undefined读取属性“0”。在Logger.log(“input=“+input[j][0])
行中(如果(input[j][0]==givenValue){,同样的情况也会发生。但是命令Logger.log(“input=“+input”);
显示预期结果。如何修复
for(var j=input.length; j>0; j--){
数组将是[0..(长度-1)]
,因此没有元素[length]
。请尝试以下操作:
for(var j=input.length-1; j>0; j--){
^^
getValues()
返回一个二维值数组。第一个维度使用字母。如果使用:input[0][0]
或input[1][0],会得到什么结果
?您好,@SandyGood,在这两种情况下,我都会收到相同的错误消息。谢谢。好的,我会检查变量中的值,columnprodicted
和lastRow
Logger.log('columnprodicted:'+columnprodicted);您需要从顶部开始,检查每一行代码的实际返回内容。出于某种原因,似乎未按您的预期分配
input`s。在执行记录中,我得到了Logger.log([predictedCell=Range,[]])
和Logger.log([columnProdicted=5,[]])
。再次感谢。非常感谢@Mogsdad!