因此,当文档中有一个编辑时,我知道onEdit函数会触发。当脚本编辑文档时,它也会触发吗?
我特别需要一个installed.onEdit函数,但我只想在按下按钮时触发它。为了测试它,我给一个绘图脚本分配了一个脚本,该脚本在活动单元格中插入一个时间戳-然后onEdit函数检查该单元格值是否等于日期,如果是的话,它应该在特定的背景中为该单元格着色。
问题是它不起作用。这是密码-请帮帮我!
function buton() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = sheet.getActiveCell();
var column = cell.getColumnIndex();
var value = cell.getDisplayValue();
const date = new Date();
if(column == 1){
cell.setValue(date);
}
}
function installedOnEditTrigger (e) {
if(value == date){
cell.setBackground('#cfdaaa');
}
}我尝试创建一个单独的onEdit函数,每次编辑时都会检查单元格的值是否是一个特定的值--如果是这样的话,会改变背景的颜色。脚本只在单元格中插入时间戳,但不为背景着色。
这只是一次试用,我需要installed.onEdit函数的实际原因是我需要脚本始终以所有者的身份运行,从而允许脚本从编辑特权中移除其他按下按钮的用户。
发布于 2022-11-09 09:50:40
您所描述的方法有几个问题。
buton()函数中安装触发器,但是该触发器将在单击按钮的用户帐户下运行,而不是在电子表格所有者的帐户下运行。installedOnEditTrigger(e)不会运行。既然您已经清楚地说明了这是一个XY问题,我将提出一个不同的解决方案。使用复选框而不是按钮,并有一个常规的可在编辑触发器上安装监视该复选框。在触发器中将复选框重置为false,以便其他用户在之后对其进行勾选。
这样,您就不需要动态安装和删除触发器。一个在电子表格所有者帐户下运行的“永久”安装触发器就足够了。
https://stackoverflow.com/questions/74371784
复制相似问题