我在表单提交的触发器上设置了一个for循环。每次提交内容时,它都会检查行是否已分类。如果没有,它将添加一个类别。我想将颜色分配作为分类的附加步骤。如果分类为A,则分类为蓝色,如果分类为B,则分类为黄色。
我已经根据其他StackOverflow帖子尝试了以下代码。没有运气。
function eventCategorization() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = sheet.setActiveSheet(sheet.getSheetByName('Form Responses 1')); //Update Sheet Name here
Logger.log("sheet: " + activeSheet.getSheetName());
var startRow = 3; // First row of data to process
var numRows = activeSheet.getLastRow() - 1; // Number of rows to process
var totalColumns = activeSheet.getMaxColumns();
// Fetch the range of all cells with responses
var dataRange = activeSheet.getRange(startRow, 1, numRows, totalColumns)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var broadEventType = row[11];
Logger.log("broadEventType: "+broadEventType);
var groupedEvent = row[1];
Logger.log("groupedEvent: "+groupedEvent)
if (groupedEvent ==""){
if (broadEventType =="Gala"){
activeSheet.getRange(i+3,2).setFormulaR1C1('="Expensive"');
row.getRow().setBackgroundColor("#99CC99");
activeSheet.getRange(i+3,2).getRow().setBackgroundColor("#99CC99");
}
}
else if(broadEventType =="Picnic"||
broadEventType=="Beach Trip"||
broadEventType=="Drinks"){
activeSheet.getRange(i+3,2).setFormulaR1C1('="Cheap"');
activeSheet.getRange(i+3,2).getRow().setBackgroundColor("#4286f4");
}
}
}
错误消息:
TypeError:在对象“,”,“ Y”,“ Jill DesRosier”,“,”,“内部”中找不到函数getRow
答案 0 :(得分:1)
function eventCategorization() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = sheet.setActiveSheet(sheet.getSheetByName('Form Responses 1')); //Update Sheet Name here
Logger.log("sheet: " + activeSheet.getSheetName());
var startRow = 3; // First row of data to process
var numRows = activeSheet.getLastRow() - 1; // Number of rows to process
var totalColumns = activeSheet.getMaxColumns();
// Fetch the range of all cells with responses
var dataRange = activeSheet.getRange(startRow, 1, numRows, totalColumns)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var broadEventType = row[11];
Logger.log("broadEventType: "+broadEventType);
var groupedEvent = row[1];
Logger.log("groupedEvent: "+groupedEvent)
if (groupedEvent ==""){
if (broadEventType =="Gala"){
activeSheet.getRange(i+3,2).setFormulaR1C1('="Expensive"');
var activeRow = activeSheet.getRange(i+3,1,1,totalColumns).setBackgroundColor("#CC6666");
}
}
else if(broadEventType =="Picnic"||
broadEventType=="Beach Trip"||
broadEventType=="Drinks"){
activeSheet.getRange(i+3,2).setFormulaR1C1('="Cheap"');
var activeRow = activeSheet.getRange(i+3,1,1,totalColumns).setBackgroundColor("#4286f4");
}
}
}
答案 1 :(得分:0)
我发现使用条件格式为行着色比尝试显式设置颜色容易得多。
您可以根据行中一个或多个单元格的内容为整行设置颜色。