Цветные ряды в части цикла For, который назначает категории для отправки форм - PullRequest
1 голос
/ 22 июня 2019

У меня есть цикл 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: Не удалось найти функцию getRow в объекте ,, Y, Y, Jill DesRosier, 424584515 ,,,,,, Internal

Ответы [ 2 ]

1 голос
/ 22 июня 2019
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");
    }
  }  
} 
0 голосов
/ 22 июня 2019

Я обнаружил, что раскраска строк с использованием условного форматирования намного проще, чем попытка установить цвет явно.

Вы можете установить цвет для всей строки на основе содержимого одной или нескольких ячеек в строке.

Условное форматирование листов Google на основе двух ячеек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...