0
我將一個Google Spreadsheet腳本一起入侵,該腳本改變輸入國家代碼的行的特定國家/地區單元格的背景顏色。我的ELSE語句將BG顏色返回到白色,所以如果一個單元格沒有國家代碼,則BG保持白色。谷歌電子表格腳本:ELSE語句覆蓋IF語句
我使用的是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');
}
}
};
感謝您幫助安迪!確實,編輯確實有效,但是如果將所有內容都更改爲'其他',則意味着不止一個國家/地區的語言環境輸入(例如「AU,BEfr,BEnl」)不起作用。這是我需要的主要功能。 我從字面上研究StackOverflow和我非常基本的JS知識(如果有的話)一起黑客入侵。 – user3119398
如果您試圖匹配單元格值中的任何字符串,請使用RegEx或一些更復雜的匹配邏輯進行研究。通過這種方式,你也可以有一個更清潔的if-else塊。 – AndyG
太好了。我會搜尋一下。非常感謝! – user3119398