为什么在第3行的onEdit(e)文件“代码”中出现此错误?

时间:2019-05-30 16:46:47

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

在Google表格中,我想要执行以下操作:

如果B129 = I3,则D129 =1。现在要保留1,永远不要忘记。

然后,如果再次使B129 = I3,则D129 =2。现在,D129可以一遍又一遍地重复增加1次,与B129 = I3一样。

由于这里有一位出色的成员,我现在有了一个框架来说明如何做到这一点。但是我收到一条错误消息:TypeError:无法从未定义中读取属性“ range”。 (第3行,文件“代码”),使用下面的代码?

由于此错误,我遇到的问题是代码根本没有在电子表格上运行。即使我要在实际的电子表格上执行所需的操作,也没有任何反应,因为错误继续出现:无法从未定义中读取属性“ range”。 (第3行,文件代码)。

function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("M Numbers");
if  (e.range.getA1Notation() != 'B129')  return; //Something other than the cell you wanted changed
var x = ss.getRange("I3").getValue();
if (e.getValue() != x) return;  //B129 doesn't equal I3
var counter = ss.getRange("D129"); // cell reference
counter.setValue(counter.getValue() + 1);
}

1 个答案:

答案 0 :(得分:0)

onEdit(e)脚本正在使用Event Objects。您无法手动运行这些脚本,它们会在编辑电子表格后自动运行。

e.range是您尝试调用事件对象以获取工作表的编辑范围的地方。由于在脚本编辑器中手动运行时没有可编辑的范围,因此它将因您遇到的错误而失败。