在您的情况下,以下修改后的脚本如何?
修改的脚本:
function menuItem1() {
var ui = SpreadsheetApp.getUi();
var result1 = ui.prompt("Please enter 1st Sheet Name");
var result2 = ui.prompt("Please enter 2nd Sheet Name");
var playerNameColumnNum = ui.prompt("Please enter Player Column Number (example: Column A = 1)");
compare(result1.getResponseText(), result2.getResponseText(), Number(playerNameColumnNum.getResponseText()));
}
function compare(result1, result2, playerNameColumnNum) {
// Retrieve 2 sheets.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName(result1);
var sheet2 = ss.getSheetByName(result2);
// Retrieve values from 2 sheets.
var range1 = sheet1.getDataRange();
var values1 = range1.getValues();
var range2 = sheet2.getDataRange();
var values2 = range2.getValues();
// Create 2 arrays for background colors to 2 sheets.
var col = playerNameColumnNum; // column "D"
var [obj1, obj2] = [values1, values2].map(([, ...e]) => e.reduce((o, r) => (o[r[col - 1]] = r, o), {}));
var getColors = ([, ...ar], obj) =>
[Array(4).fill(null), ...ar.map(v => !obj[v[col - 1]] ? Array(v.length).fill("red") : obj[v[col - 1]].map((e, i) => e == v[i] ? "white" : "red"))];
var colors1 = getColors(values1, obj2);
var colors2 = getColors(values2, obj1);
// Set backgrounds to 2 sheets.
range1.setBackgrounds(colors1);
range2.setBackgrounds(colors2);
}
测试:
使用值运行此脚本时
result1, result2, playerNameColumnNum
属于
2022, 2023, 4
到您提供的电子表格,将获得以下结果。