2013-07-11 3 views
1

Google Apps Script를 처음 사용하고 스프레드 시트를 코딩하는 방법을 알아내는 데 도움이 필요합니다. 스프레드 시트는 양식을 제출하는 사용자가 채 웁니다. 특정 열의 응답에 따라 행 색상을 변경하고 싶습니다. 여기 내가 지금까지 가지고있는 것입니다 :기준에 따라 행 색상을 변경하는 방법은 무엇입니까?

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()은 전체 시트의 범위를 제공합니다. 최근 양식 제출을 입력 한 행을 찾으려면 과 같은 것을 사용하십시오.

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); 
} 
관련 문제