对 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;} 但两者都不起作用并且破坏了脚本
抱歉,如果我误解了,但如果通过选项卡排除,您的意思是跳过整张纸,也许在这一行之后有一个 if ;
sheetName = sheets[i].getName();
类似;
if(sheetName != "NAME OF SHEET" || sheetName != "NAME OF ANOTHER SHEET")