📜  如何将 onEdit 分配给特定选项卡 - Javascript (1)

📅  最后修改于: 2023-12-03 15:24:43.599000             🧑  作者: Mango

如何将 onEdit 分配给特定选项卡 - Javascript

在Google Sheets中,onEdit是一种用于监视电子表格的编辑事件的触发器。当电子表格被编辑时,onEdit函数将被自动调用。然而,有时您可能只想为您感兴趣的特定选项卡上的编辑事件分配一个onEdit函数。本指南将向您展示如何使用Javascript来将onEdit分配给特定选项卡。

步骤1 - 创建onEdit函数

在指定选项卡上分配onEdit函数之前,需要先创建该函数。确保您的onEdit函数符合以下要求:

  • 函数名称必须是"onEdit"
  • 函数必须有一个参数,用于传递电子表格中被编辑单元格的信息

以下是一个简单的onEdit函数示例:

function onEdit(e){
  var range = e.range;
  var value = range.getValue();
  if(value == "yes"){
    range.setBackground("green");
  }
}

该函数每次发生电子表格编辑时都将检查值是否为"yes",如果是,则将单元格的背景色设置为绿色。

步骤2 - 获取要分配onEdit函数的选项卡ID

要将onEdit函数分配给特定选项卡,您首先需要获取该选项卡的ID。您可以通过以下步骤来获取:

  1. 打开Google Sheets电子表格,单击选项卡名称以选择您想要分配onEdit函数的特定选项卡。
  2. 在地址栏中,查找包含选项卡名称的URL。例如,如果您的选项卡名称为"Sheet1",则URL可能如下所示:
https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0
  1. 在URL中,"gid="之后的数字即表示选项卡的ID。在此示例中,选项卡ID为0。
步骤3 - 创建修改器函数来分配onEdit函数

您现在已经准备好为特定选项卡创建修改器函数并分配onEdit函数。以下是步骤:

  1. 在Google Sheets电子表格中,单击“工具”>“脚本编辑器”菜单,打开脚本编辑器。
  2. 在脚本编辑器中,创建一个新的名称为"assignOnEditToSheet"的函数。
  3. 将以下代码复制并粘贴到函数中。
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函数分配给该选项卡。

  1. 保存并命名该代码文件。
步骤4 - 调用修改器函数

最后,您应该通过调用修改器函数将onEdit函数分配给感兴趣的特定选项卡。要调用该函数,请按照以下步骤操作:

  1. 单击“编辑器”窗口中的“编辑”>“运行函数”菜单。
  2. 在弹出的对话框中,选择"assignOnEditToSheet"作为要运行的函数。
  3. 在"sheetId"字段中输入特定选项卡的ID数字。例如,在前面的示例中,输入0作为选项卡ID。
  4. 单击“运行”按钮。

完成上述步骤后,onEdit函数现在已分配给选择的特定选项卡。任何在该选项卡上发生的电子表格编辑事件都将自动触发onEdit函数,以执行您指定的操作。

结论

通过遵循本指南,您应该能够将onEdit函数分配给特定选项卡。如果您尝试使用onEdit触发器来监视编辑事件,并且只想在特定选项卡上执行此函数,这可以非常有用。