如何根据标准更改行颜色?

时间:2013-07-11 09:20:41

标签: google-apps-script

我是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();
}

有什么想法吗?

1 个答案:

答案 0 :(得分: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);
}