如何使用ID作为对工作表而不是名称的引用

时间:2019-11-08 14:42:59

标签: google-sheets

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

是否可以将以下脚本更改为使用工作表的 ID 而不是 Name

此脚本假定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());
            }
        }
    }
}

0 个答案:

没有答案