【问题标题】:TypeError: Cannot read property 'range' of undefined [duplicate]TypeError:无法读取未定义的属性“范围”[重复]
【发布时间】: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");
    }


 }

【问题讨论】:

  • 看来eonEdit内部是未定义的...这个函数在哪里被调用?
  • 哪一行会报错? (我猜是函数的第一行。)您希望该行上的对象是什么,为什么?

标签: javascript google-apps-script google-sheets


【解决方案1】:

如果您从脚本编辑器中运行代码,您将收到范围错误。在简单的onEdit() 触发器的情况下,您只能通过实际编辑单元格来测试代码。 e 事件变量不会分配任何内容,除非您实际编辑单元格。当事件(单元格编辑)发生时,该 e 变量将被分配一个事件对象。

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 2020-11-21
    • 2021-03-18
    • 2021-10-12
    • 1970-01-01
    • 2014-09-07
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多