如何从 google 应用程序脚本中排除某些 sheets/tabs?

How do I exclude certain sheets/tabs from google app script?

我正在使用此代码:function onEdit(e) { e.source.getActiveSheet().getRange('K2').setValue(new Date()).setNumberFormat("dd/mm/yyyy hh:mm:ss") }

添加每个 sheet/tab 为 'last updated' 的日期和时间,但是,我想从中排除两个选项卡:“产品特性”和“客户列表概述”-如何我可以调整脚本以便不包括这两个 tabs/sheets 吗? (我完全是新手,所以需要确切地知道要更改什么以及将它放在哪里,谢谢!)

考虑先获取活动 sheet 的名称,然后添加一个条件来检查活动 sheet 的名称是否与 不同您想要排除代码的那些(即在特定单元格中设置日期)。

示例(N.B:未测试):

function onEdit(e) {
    /** Name of the active sheet. */
    var sheetName = "";

    /** Active sheet. */
    var activeSheet = null;

    // Get active sheet: 
    activeSheet = e.source.getActiveSheet();

    // Get active sheet's name:
    sheetName = activeSheet.getSheetName();

    // Apply this code to those active sheets where their name is different from these sheets:
    if (sheetName != "Product Features" && sheetName != "Client List Overview") {
        e.source.getActiveSheet().getRange('K2').setValue(new Date()).setNumberFormat("dd/mm/yyyy hh:mm:ss")
    }
}

我相信这就是您所需要的:

function onEdit(e) { 
  var activeSheet = SpreadsheetApp.getActive();
  activeSheet.getRange('K2').setValue(new Date()).setNumberFormat("dd/mm/yyyy hh:mm:ss") 
  }

尝试

function onEdit(e) {
  var excl = ['Sheet1', 'Sheet2'];//excluded sheets
  var activeSheet = e.source.getActiveSheet();
  if (!~excl.indexOf(activeSheet.getSheetName())) {
    activeSheet.getRange('K2').setValue(new Date()).setNumberFormat("dd/mm/yyyy hh:mm:ss")
  }
}

Bitwise NOT (~)