2013-07-11 42 views
1

我不熟悉Google Apps腳本,需要一些幫助來了解如何編寫電子表格。電子表格由提交表單的用戶填充。我希望行顏色根據某個列的響應而改變。這是我到目前爲止:如何根據標準更改行顏色?

function colorRow(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Requests"); 
    var range = sheet.getDataRange(); 

    // will get the row 
    var row = range.getRow(); 

    // get the cell value to compare 
    var cellValue = range.getValue() 

    if(cellValue == "Cancel Interpreter Request"){ 
    dataRange.setBackgroundRGB(255, 0, 0); 
    } 
    else if(cellValue == "Next Day Interpreter Request"){ 
    dataRange.setBackgroundRGB(201, 218, 248); 
    } 
    else if(cellValue == "Update Existing Interpreter Request"){ 
    dataRange.setBackgroundRGB(255, 255, 0); 
    } 
    else if(cellValue == "Same Day Request"){ 
    dataRange.setBackgroundRGB(106, 168, 79); 
    } 
    SpreadsheetApp.flush(); 
} 

function onSubmit(e){ 
    colorRow(); 
} 

任何想法?

回答

0

getActiveSpreadsheet()僅在您編輯電子表格時適用。當用戶提交表單時,沒有活動的電子表格。改爲使用SpreadsheetApp.openById()

此外,getDataRange()爲您提供了整個工作表的範圍。如果您正在尋找最近輸入表格的行,請使用e.range 類似於

function colorRow(dataRange){ 

    // get the cell value to compare 
    var cellValue = dataRange.getValue() 

    if(cellValue == "Cancel Interpreter Request"){ 
    dataRange.setBackgroundRGB(255, 0, 0); 
    } 
    else if(cellValue == "Next Day Interpreter Request"){ 
    dataRange.setBackgroundRGB(201, 218, 248); 
    } 
    else if(cellValue == "Update Existing Interpreter Request"){ 
    dataRange.setBackgroundRGB(255, 255, 0); 
    } 
    else if(cellValue == "Same Day Request"){ 
    dataRange.setBackgroundRGB(106, 168, 79); 
    } 
    SpreadsheetApp.flush(); 
} 

function onSubmit(e){ 
    colorRow(e.range); 
}