2017-01-26 31 views
0

我無法讓我的腳本以我想要的方式運行。我想要做的是取3個值,根據多個參數對它們進行評估,然後根據評估結果將值傳遞給特定的單元格。到目前爲止,我有這個;谷歌自定義腳本來評估值和分配單元格值

function myFunction() { 
    var f = SpreadsheetApp.getActiveSheet().getRange("B$8"); 
    var l = SpreadsheetApp.getActiveSheet().getRange("B$14"); 
    var m = SpreadsheetApp.getActiveSheet().getRange("B$20"); 

    if(f >= 1 && l >= 1 && m >= 1) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('0'); 
    } else if (f >= 2) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('0'); 
    } else if (f == 1 && l == 0 && m == 0) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('1'); 
    } else if (f == 0 && l >=1 && m >= 1) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('2'); 
    } else if (f == 0 && l+m <= 4) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('3'); 
    } else if (f == 0 && l == 0 && m <=4) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('4'); 
    } else if (f == 0 && i == 0 && m == 0) { 
    SpreadsheetApp.getActiveSheet().getRange('B$49').setValue('5'); 
    } else { 
    SpreadsheetApp.getUi().alert('There has been an error, please rate manually'); 
    } 
} 

無論我在單元格B8,B14或B20中有什麼值,我都會收到錯誤消息。

我也希望它能夠在多列中工作,而行保持不變(hense'$'在範圍中)。雖然我不確定我是否正確地做到了這一點。

如果有人可以看看我的代碼,並解釋我做錯了什麼,並幫助我瞭解如何解決它,這將不勝感激。

回答

1

在獲取數據的線,你需要添加.getValue()這樣的:

SpreadsheetApp.getActiveSheet().getRange("B$8").getValue() 

你有一個錯字:

else if (f == 0 && i == 0 && m == 0) 

我相信我應該爲L。

此外,檢查你的邏輯值'3'。就像它是你永遠不會達到'4'或'5'。

+0

謝謝你的幫助。我希望這是我錯過的簡單的事情。感謝您收到錯字,希望我能最終獲得。 我明白你對價值邏輯'3'的看法,我明白爲什麼它是一個問題。我想不出一種解決方法。我猜,我有時間做更多的研究。 – Todne

+0

所以我發現了我的邏輯缺陷,並修正了它們。在這樣做的時候,我意識到他們給我編程的邏輯存在一個缺陷,所以它回到了繪圖板。非常感謝你的幫助,對不起,這是一個簡單的修復。 – Todne

+0

如果你能更好地解釋你正在做的事情,我會願意幫忙。共享示例電子表格會很有幫助。 –

相關問題