我正在尝试检测安装的onEdit
函数中编辑的表格。
记录器正确记录了要编辑的单元格的数据,但是没有告诉我对此编辑进行了哪些表。我需要专门以ID编辑表格以完成我正在构建的函数。
记录器:
[19-08-01 08:37:27:714 CDT] {"authMode":{},"range":{"columnStart":4,"rowStart":4,"rowEnd":4,"columnEnd":4},"source":{},"oldValue":"2.0","triggerUid":"1111111","user":{"nickname":"Mike-SMT","email":"Mike-SMT@random.com"},"value":"222"}
用于记录事件的代码:
function raw_data_edited(e) {
Logger.log(JSON.stringify(e));
}
我在上面的日志中看不到指示特定表的任何内容。
有没有事件的ID表的方法?
这很奇怪, source
在记录事件对象时似乎总是显示为空,但仍然可以使用。
我不确定您是指电子表格 id还是 id id,所以这是使用事件对象获得两者的方法:
//get spreadsheet id using "source" object
e.source.getId();
//get spreadsheet id using "range" object
e.range.getSheet().getParent().getId();
//get individual sheet id using "source" object
e.source.getActiveSheet().getSheetId();
//get individual sheet id using "range" object
e.range.getSheet().getSheetId();
参考:
- 事件对象
-
getId()
-
getSheetId()
e.range
将为您提供编辑的范围。
从那里您可以使用getSheet()
获取此范围属于的表格。
然后从表格中使用getSheetId()
获取表格
function raw_data_edited(e) {
Logger.log(JSON.stringify(e));
var ssID = e.range.getSheet().getSheetId().toString();
Logger.log(ssID);
}