我目前正試圖凝聚我的一些代碼在谷歌腳本從很多字符到很多。凝聚javascript代碼通過嵌套其他如果語句裏面,而
目前,我的代碼看起來是這樣的 - 我需要寫這32倍的每一行,變量cell2
和A2
將這個代碼的每塊上增加一個(最多cell32
和A32
):
if (cell2 == condition1)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color1);
else if(cell2 == condition1)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color1);
else if(cell2 == condition2)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color2);
else if(cell2 == condition3)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color3);
else if(cell2 == condition4)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color4);
else if(cell2 == condition5)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color5);
else if(cell2 == condition6)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color6);
else if(cell2 == condition7)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color7);
else if(cell2 == condition8)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color8);
else if(cell2 == condition9)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color9);
else if(cell2 == condition10)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color10);
else if(cell2 == condition11)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color11);
else if(cell2 == condition12)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color12);
else if(cell2 == condition13)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color13);
else if(cell2 == condition14)
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color14);
else
spreadsheet.getRange(spreadsheet.getRange('A2').offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor('white');
然而,凝結這一點,我想設置以下功能:
function updateColor(range) {
var cell = range;
var condition = "condition";
var number = cell.replace("$B", "");
var i = 0;
if (cell == condition+i) {
spreadsheet.getRange(spreadsheet.getRange("A"+number).offset(0, 0, 1,3).getA1Notation()).setBackgroundColor(color1);
}
while (i<=14) {
else if(cell == condition+i) {
spreadsheet.getRange(spreadsheet.getRange("A"+number).offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor(color+i);
}
i++;
}
else {
spreadsheet.getRange(spreadsheet.getRange("A"+number).offset(0, 0, 1, 3).getA1Notation()).setBackgroundColor('white');
}
我試圖完成設置,通過使用while循環文本的大塊,並INCREM在循環的每次迭代期間將else if
中的變量加1。我遇到的問題是代碼無法運行 - 它掛在else if
行,我認爲這是因爲我無法在while循環內啓動else if
。 color
也已在此函數之前定義,1到14.
如何編寫此循環以便從底部生成頂部,執行時的功能更小,還是無法壓縮此操作我嘗試着?
謝謝你的幫助。
如果前面沒有if語句,則不能有'else if'語句。 – Barmar