📅  最后修改于: 2023-12-03 15:24:43.599000             🧑  作者: Mango
在Google Sheets中,onEdit是一种用于监视电子表格的编辑事件的触发器。当电子表格被编辑时,onEdit函数将被自动调用。然而,有时您可能只想为您感兴趣的特定选项卡上的编辑事件分配一个onEdit函数。本指南将向您展示如何使用Javascript来将onEdit分配给特定选项卡。
在指定选项卡上分配onEdit函数之前,需要先创建该函数。确保您的onEdit函数符合以下要求:
以下是一个简单的onEdit函数示例:
function onEdit(e){
var range = e.range;
var value = range.getValue();
if(value == "yes"){
range.setBackground("green");
}
}
该函数每次发生电子表格编辑时都将检查值是否为"yes",如果是,则将单元格的背景色设置为绿色。
要将onEdit函数分配给特定选项卡,您首先需要获取该选项卡的ID。您可以通过以下步骤来获取:
https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0
您现在已经准备好为特定选项卡创建修改器函数并分配onEdit函数。以下是步骤:
function assignOnEditToSheet(sheetId){
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetById(sheetId);
var rules = sheet.getOnEditRules();
var hasOnEdit = false;
for(var i = 0; i < rules.length; i++){
if(rules[i].getHandlerFunction() == "onEdit"){
hasOnEdit = true;
}
}
if(!hasOnEdit){
var rule = SpreadsheetApp.newTrigger("onEdit").forSheet(sheet).onEdit().create();
}
}
该函数将获取具有指定ID的选项卡,并检查该选项卡上是否已分配了onEdit函数。如果未分配,则将onEdit函数分配给该选项卡。
最后,您应该通过调用修改器函数将onEdit函数分配给感兴趣的特定选项卡。要调用该函数,请按照以下步骤操作:
完成上述步骤后,onEdit函数现在已分配给选择的特定选项卡。任何在该选项卡上发生的电子表格编辑事件都将自动触发onEdit函数,以执行您指定的操作。
通过遵循本指南,您应该能够将onEdit函数分配给特定选项卡。如果您尝试使用onEdit触发器来监视编辑事件,并且只想在特定选项卡上执行此函数,这可以非常有用。