【发布时间】:2014-01-29 19:14:03
【问题描述】:
我编写了一个 Google 电子表格脚本,该脚本可以更改输入国家代码所在行的特定国家单元格的背景颜色。我的 ELSE 语句将 BG 颜色返回为白色,因此如果一个单元格没有国家代码,它的 BG 仍然是白色。
我正在使用 toString().match,因此我可以在一个单元格中包含诸如“AU、BEfr、BEnl”之类的输入,并分别突出显示它们的所有单元格。
在我开始添加更多行之前,它运行得很好。也许我不小心删除了一些东西?
正确的国家/地区单元格突出显示 1 秒钟,然后立即返回白色背景。
我在这里缺少什么?
非常感谢!
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('R186');
var values1Rule1 = s.getRange('Locales').getValues();
var color1 = '#ADD8E6';
for (var row in values1Rule1) {
for (var col in values1Rule1[row]) {
if(values1Rule1[row][col].toString().match("AR") == "AR")
s.getRange(s.getRange('AR').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
if(values1Rule1[row][col].toString().match("AU") == "AU")
s.getRange(s.getRange('AU').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
if(values1Rule1[row][col].toString().match("BEfr") == "BEfr")
s.getRange(s.getRange('BEfr').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
if(values1Rule1[row][col].toString().match("BEnl") == "BEnl")
s.getRange(s.getRange('BEnl').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
if(values1Rule1[row][col].toString().match("BR") == "BR")
s.getRange(s.getRange('BR').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
if(values1Rule1[row][col].toString().match("CAen") == "CAen")
s.getRange(s.getRange('CAen').offset(row,col,1,1).getA1Notation()).setBackgroundColor(color1);
else
s.getRange(s.getRange('I3:BO').offset(row,0,1,200).getA1Notation()).setBackgroundColor('white').setFontColor('black');
}
}
};
【问题讨论】:
标签: javascript google-apps-script google-sheets