我需要一个脚本来查找格式完全相同的Google云端硬盘页中的重复项。具体而言,列中可能存在重复数据,但一个实例应为红色,另一个实例应为黑色。我想突出显示两个实例都是黑色的单元格。我有一个脚本来查找重复项,但无论文本颜色如何,它都会突出显示它们。谢谢你的帮助。
我用来查找重复项的脚本是:
//================================
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{name : "Check Duplicates",functionName : "checkDuplicates"}];
sheet.addMenu("Scripts", entries);
};
function checkDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("L:L"); // Set Any Range
// "L:L" is for Columns L
// And if you want to check duplicates for whole sheet then try this:
// var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
var numRows = data.length;
var numColumns = data[0].length;
var formats = [];
var values = [];
for (var i = 0; i < numRows; i++) {
formats[i] = [];
for (var j = 0; j < numColumns; j++) {
formats[i][j] = 'WHITE';
if (data[i][j] != '') {
values.push([data[i][j], i, j]);
}
}
}
var numValues = values.length;
for (var k = 0 ; k < numValues - 1; k++) {
if (formats[values[k][1]][values[k][2]] == 'WHITE') {
for (var l = k + 1; l < numValues; l++) {
if (values[k][0] == values[l][0]) {
formats[values[k][1]][values[k][2]] = 'YELLOW';
formats[values[l][1]][values[l][2]] = 'YELLOW';
}
}
}
}
dataRange.setBackgroundColors(formats);
}
//================================
我不熟悉Google云端硬盘的脚本,因此我不确定如何修改以添加格式要求。
答案 0 :(得分:0)
突出显示L列中的重复项,其中字体颜色为黑色: 被视为重复的单元格必须具有相同的值和字体颜色为黑色。
function checkDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("L1:L" + sheet.getLastRow());
dataRange.setBackground("white");
var data = dataRange.getValues();
var colors = dataRange.getFontColors();
var numRows = data.length;
var highlights = dataRange.getBackgrounds();
for(var r = 0; r < data.length; r++) {
data[r].push(colors[r][0]);
data[r].push(r);
}
data.sort();
for(var r = 0; r < data.length - 1; r++) {
if(data[r][0] && data[r][1] == "#000000") {
if(data[r][0] == data[r+1][0] && data[r+1][1] == "#000000") {
highlights[data[r][2]][0] = "yellow";
highlights[data[r+1][2]][0] = "yellow";
}
}
}
dataRange.setBackgrounds(highlights);
}
如果这不符合您的意图,请与我联系。
L3&amp; L6突出显示。 L2&amp; L5不是。