我试图弄清楚如何通过谷歌电子表格上的脚本使用条件格式,类似于您可以使用条件格式功能执行的操作。
我有两列标有“国家”和“州”。如果一个单元格中的值为“美国”,我希望脚本检查相邻的州列以确保它不是空白的。如果是,我希望单元格背景变为红色。
有没有办法在脚本中做到这一点?我不想使用内置功能,因为它不会复制到电子表格中新创建的工作表,因为我会让其他用户创建新工作表。
我找到了一些参考资料,但我无法根据自己的需要定制它们。
我试图弄清楚如何通过谷歌电子表格上的脚本使用条件格式,类似于您可以使用条件格式功能执行的操作。
我有两列标有“国家”和“州”。如果一个单元格中的值为“美国”,我希望脚本检查相邻的州列以确保它不是空白的。如果是,我希望单元格背景变为红色。
有没有办法在脚本中做到这一点?我不想使用内置功能,因为它不会复制到电子表格中新创建的工作表,因为我会让其他用户创建新工作表。
我找到了一些参考资料,但我无法根据自己的需要定制它们。
尝试将其复制并粘贴到空白脚本文件中。这取决于 A 列是 Country,B 列是 State,但是您可以根据需要制作任意数量的工作表,这将自动工作。
如果您想解释特定部分,请告诉我,因为我不确定您的脚本背景是什么。我在代码中包含了一些注释。
function onEdit(e) {
var ss = e.source;
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A:B");
var values = range.getValues();
//for each row that data is present
for(var i = 0; i < values.length; i++) {
var cell = sheet.getRange(i + 1, 2);
//check if the first value of that row is exactly "United States"
if(values[i][0] === "United States") {
//if it is, check for a blank cell. If so, make it red.
if(values[i][1] === "") {
cell.setBackground('red');
} else {
cell.setBackground('white');
}
} else {
//In any other case, make it white.
cell.setBackground('white');
}
}
}
假设 Country 位于 (1,1),State 位于 (1,2),其中 (i,j) 表示电子表格上的第 i 行和第 j 列。Google 电子表格是 1 索引的,这意味着索引从 1 开始。
var activeSheet = SpreadsheetApp.getActiveSheet();
for (var a = 2; a < activeSheet.getLastRow(); a++) {
if (String(activeSheet.getRange(a,1).getCell(1,1)) === "United States") {
if (String(activeSheet.getRange(a,2).getCell(1,1)) === null) {
activeSheet.getRange(a, 2, 1, 1).setBackgroundColor('red');
}
}
}