【发布时间】:2021-01-26 21:19:48
【问题描述】:
我不是编码员,但我尝试使用 google java 脚本构建库存跟踪工具。对于下面的代码,我遇到“TypeError:无法读取未定义的属性‘范围’”。不清楚,怎么解决。请帮我解决这个问题。
function onEdit(e) {
var range = e.range;
var spreadSheet = e.source;
var spreadSheetName = spreadSheet.getActiveSpreadsheet().getName();
var searchColumn = range.getColumn();
var searchRow = range.getRow();
//DEFINE ALL ACTIVE SHEET
var ss = SpreadsheetApp.getActiveSpreadsheet();
//DEFINE MENU SHEET
var menuSheet = ss.getRangeByName("Menu");
var inventorySheet = ss.getSheetByName("Inventory");
Logger.log('Column: ' + searchColumn + ' Row: ' + searchRow + ' Value:' + e.value + ' spreadSheetName: ' + spreadSheetName);
if(searchColumn == 2 && searchRow == 4 && e.value != '' && spreadSheetName == 'Menu') {
var partNumber = e.value;
//LAST ROW ON INVENTORY SHEET
var lastRow = inventorySheet.getLastRow() + 1;
var foundRecord = false;
for(var j = 2; j < lastRow; j++) {
//UPDATE EXISTING QUANTITY AT FROM LOCATION
if(inventorySheet.getRange(j,1).getValue() == partNumber) {
var nextRow = menuSheet.getLastRow() + 1;
menuSheet.getRange(nextRow,1).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
menuSheet.getRange(nextRow,2).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
menuSheet.getRange(nextRow,3).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
foundRecord = true;
}
}
if(foundRecord == false) {
menuSheet.getRange(10,1).setValue(['(NO RECORDS FOUND)']).setFontSize(12).setFontWeight("bold");
}
}
【问题讨论】:
-
看来
e在onEdit内部是未定义的...这个函数在哪里被调用? -
哪一行会报错? (我猜是函数的第一行。)您希望该行上的对象是什么,为什么?
标签: javascript google-apps-script google-sheets