【发布时间】:2019-03-08 09:13:19
【问题描述】:
我需要将函数 onEdit() 限制为仅在特定范围内进行更改时触发。用户在 B 列中选择一个值,A 列填充了一个特定值。
虽然下面的功能似乎可以正常工作,但在应用程序编辑器中运行时,它会引发错误:TypeError: Cannot read property "source" from undefined.
显然是指e.source.getSheetName 行
function onEdit(e) {
if (
e.source.getSheetName() == "Activity" &&
e.range.columnStart == 2 &&
e.range.columnEnd == 2 &&
e.range.rowStart >= 2 &&
e.range.rowEnd <= 100
) {
e.value !=='' ? e.range.offset(0,-1).setValue(caseID()) : null
};
};
我不确定这是否可以忽略,因为该函数有效(在 A 列中插入 caseID 函数的结果,当 B 列中的值发生更改时)? 提前谢谢你,
【问题讨论】:
-
e是undefined因为没有编辑事件(因为没有编辑)。有关实际错误,请参见视图> 执行。电子表格类中也没有getSheetName()方法。不需要for循环、ss、范围和活动。 -
@TheMaster
getSheetName()怎么样:link -
@TheMaster 已更新代码,删除了
ss, activity, range和for-loop - 谢谢! -
是的。好像有这个方法。但我认为该方法只会提供第一个工作表的名称而不是编辑工作表的名称。
标签: google-apps-script google-sheets spreadsheet