如何从脚本中排除Google表格中的特定选项卡

问题描述 投票:0回答:1

对 google appscript 相当缺乏经验

我正在使用的代码如下,我想要完成的是排除不需要突出显示更改的特定选项卡。

function findDuplicatesAcrossSheets() {
  // Set the following variables to change the script's behavior
  const COLUMN_TO_CHECK = 13;  // A=1, B=2, etc.
  const HEADER_ROWS = 1;      // script will skip this number of rows

  dupeList = [];  // an array to fill with duplicates
  urlLocs = {};   // track which sheet(s) contain a url

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    numRows = sheets[i].getLastRow();
    if (numRows > HEADER_ROWS) {
      sheetName = sheets[i].getName();
      var data = sheets[i].getRange(HEADER_ROWS+1, COLUMN_TO_CHECK, numRows-HEADER_ROWS, 1).getValues();
      for (index in data) {
        row = parseInt(index) + HEADER_ROWS + 1;
        var url = data[index][0];
        if (url == "") {continue;}         // ignore empty url cells
        // We know we are looking at URLs, so we will do some cleanup specific to that type of data
        if (urlLocs.hasOwnProperty(url)) {
          dupeList.push("duplicate: " + url + " in sheet " + sheetName + " and sheet " + urlLocs[url].sheet);
          sheets[i].getRange(row,COLUMN_TO_CHECK,1,1).setBackground("pink");
          ss.getSheetByName(urlLocs[url].sheet).getRange(urlLocs[url].row,COLUMN_TO_CHECK,1,1).setBackground("pink");
        }
        urlLocs[url] = {sheet: sheetName, row: row};
      }
    }
  }
  if (dupeList.length > 0) {
    Browser.msgBox(dupeList.join("\\n"));
  } else {
    Browser.msgBox("No duplicates found")
  }
}

已尝试使用 var except 和 if(exclude.indexOf(ss.getSheets())) {continue;} 但两者都不起作用并且破坏了脚本

google-sheets
1个回答
0
投票

抱歉,如果我误解了,但如果通过选项卡排除,您的意思是跳过整张纸,也许在这一行之后有一个 if ;

sheetName = sheets[i].getName();

类似;

if(sheetName != "NAME OF SHEET" || sheetName != "NAME OF ANOTHER SHEET")
© www.soinside.com 2019 - 2024. All rights reserved.