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