Google sheets 如何使用ID作为图纸而不是名称的引用

Google sheets 如何使用ID作为图纸而不是名称的引用,google-sheets,Google Sheets,我有一个基于GoogleSheets中工作表名称硬编码的脚本。它可以工作,但这意味着如果工作表的名称发生更改,则需要更新脚本。使用Id将意味着该工作表不必受到保护,我希望用户能够重新命名该工作表 能否将下面的脚本更改为使用工作表的ID而不是名称 此脚本假定gid=0,并更新F列右侧列中已更改行的审核时间戳 function onEdit(event) { var name = event.range.getSheet().getName(); switch (name) {

我有一个基于GoogleSheets中工作表名称硬编码的脚本。它可以工作,但这意味着如果工作表的名称发生更改,则需要更新脚本。使用Id将意味着该工作表不必受到保护,我希望用户能够重新命名该工作表

能否将下面的脚本更改为使用工作表的ID而不是名称

此脚本假定gid=0,并更新F列右侧列中已更改行的审核时间戳

function onEdit(event) {
    var name = event.range.getSheet().getName();
    switch (name) {
      case "AA":
          update(event)
          break;
    }
}


function update(event) {

    var ColF = 6;  // Column Number of "F"

    var changedRange = SpreadsheetApp.getActiveRange();
    if (changedRange.getColumn() == ColF) {
        if (changedRange.getRowIndex() >=7 ) {
            // An edit has occurred in Column F
            var state = changedRange.getValue();
            var adjacentDate = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColF+4);
            var adjacentDate2 = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColF+2);
            var adjacentLDAP = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColF+3);
            var adjacentLDAP2 = SpreadsheetApp.getActive().getSheetByName("AA").getRange(changedRange.getRow(),ColF+1);
            var timestamp = new Date(); // Get the current time

            adjacentDate2.setValue(timestamp);
            adjacentLDAP2.setValue(Session.getEffectiveUser().getEmail());

            if (adjacentDate.getValue() == "") {
                // Write timestamp into adjacent cell
                adjacentDate.setValue(timestamp);
                adjacentLDAP.setValue(Session.getEffectiveUser().getEmail());
            }
        }
    }
}

为google sheets添加了一个标记,因为这就是本文的目的,删除了时间戳作为标记,因为它无助于OP解决如何通过Id引用工作表的问题。更改了措辞,以框定特定问题,并支持OP为什么不满意当前解决方案的证据。可能重复