Использование циклов for и case для сортировки и перемещения между листами Google и таблицами - PullRequest
0 голосов
/ 01 июня 2018

ниже приведен сценарий, который я собираюсь собрать как можно лучше.Но я юридически слепой и мне нужно сделать некоторую автоматизацию (отсюда и этот скрипт), и когда я помещаю его в редактор скриптов Google, он выдает ошибки «отсутствует; перед строкой ...», но я проверил и дважды проверил, ииз того, что я вижу все ";"что должно быть в нем; (!.

Как VBA-кодер, я МОЖЕТ сделать большую часть этого через это, но выбрал Google для листов и форм, поэтому нужно разобраться в этом чертовски JavaScriptвещи сейчас.

Может кто-нибудь, пожалуйста, потратьте некоторое время, чтобы просмотреть это и наметить, где ошибки?

Большая часть этого кода взята из кусочков здесь при переполнении стека, чтобы увидеть, еслиЯ могу разобраться в этом и научиться сам, но мне действительно нужна некоторая помощь по этому вопросу прямо сейчас (таким образом, что позволит мне учиться одновременно).

Концепция этого сценария в конечном итоге заключается в том, чтобы принятьформировать заявки и сортировать их на другие листы в электронной таблице на основе "courseChoices", а затем, далее, через "Locations"

function change(e) { var ss = SpreadsheetApp.getActiveSpreadsheet();

`` var sourceSheet = ss.getSheetByName ('Form Responses 1');

  var sourceRows = sourceSheet.getDataRange();
 var numSourceRows = sourceRows.getNumRows();
 var sourceRowValues = sourceRows.getValues();

 var rowsTransferred = 0;
 for (var i = 0; i <= numSourceRows - 1; i++) {
  var thisSourceRowValue = sourceValues[i];
  // See if the course is a multiple choice of courses
  // in this case column 8  (array 7)
  if (thisSourceRowValue[7].indexOf(",") < 0) {
   // Is  not Multiple choice
   Var CourseChoices = thisSourceRowValue[7]  
  }
  else{
   var courseChoices = thisSourceRowValue[7].split(","); 
   for(var x = 0; x <= thisSourceRowValue[7].indexOf(","); x++) 
    switch(courseChoices(x)) {
     case courseChoices(x).indexOf("Dual") > -1;
     case courseChoices(x).indexOf("Childhood") > -1;
      var Target = "Dual Diploma";
      var courseName = "Dual Diploma in Early Childhood Education and Care";
     break;
     case courseChoices(x).indexOf("Sector") > -1;
      var Target = "Adv Sector";
       var courseName = "Advanced Diploma in Community Sector Management";
     break;
     case courseChoices(x).indexOf("Adv") > -1;
      var Target = "Adv Management";
      var courseName = "Advanced Diploma in Leadership and Management";
     break;
     case courseChoices(x).indexOf("Business") > -1;
      var Target = "CertIII Business";
       var courseName = "Certificcate III in Business";
     break;
     case Default;
      var Target = "Other";
      var courseName = courseChoices(x);
    }
    // checked all multiple choices
   }
   // Made sure we have ALL Choices now
  }
  // See if the sheet exists do more stuff
  if (!ss.getSheetByName(Target)) { 
   // Tab does not exist, so create it
   ss.insertSheet(Target);
   // Ensured Target Tab Exists
   // Insert first row as headers   
   // sort order of columns ....
   var range_input = sourceSheet.getRange("A1:N1");
   var range_output = Target.getRange("A1");
   //sort columns into new orders
   var keep_columns = [0,1,2,3,4,5,10,9,8,11,6,7, 12];
   //Now copy the columns into the target in the new order
   copyColumnNumbers(range_input, range_output, keep_columns);
   }
  //  set our target sheet and target range
  var colNumber = sourceSheet.getLastColumn()-1;
   var targetSheet = ss.getSheetByName(Target);
  var targetRange = targetSheet.getRange(targetSheet.getLastRow()+1, 1, 1,     colNumber);
  //  get our source range/row
   var sourceRange = SourceSheet.getRange(rowIndex, 1, 1, colNumber);
  var targetRows = targetSheet.getDataRange();
  var numTargetRows = targetRows.getNumRows();
  var targetValues = targetRows.getValues();
  for (var y = 0; y <= numTargetRows - 1; y++) {
   var thisTargetRow = targetValues[y];
   // See if the first name, last name and Email are the same
   if (thisTargetRow[2] == thisSourceRow[2] && thisTargetRow[3] ==             thisSourceRow[3] && thisTargetRow[5] == thisSourceRow[5]) {
    // Record Exists, so just alter the coursename 
    thisTargetRow[7] == courseName;
    break;
   }Else if (targetRow[0] == ""){
    // WE have come to a blank line in the target sheet
    // Alter Course to proper Name
    thisTargetRow[7] == courseName;
    // Add new record in correct column orders
   var range_input = thisTargetRow;
   var range_output = thisTargetRow
   //sort columns into new orders
   var keep_columns = [0,1,2,3,4,5,10,9,8,11,6,7, 12];
   //Now copy the columns into the target in the new order
   copyColumnNumbers(range_input, range_output, keep_columns);
    break;
   }
   // records checked in target
  }
  // We have checked all the records now in the Source Sheet
 }
 // ALL DONE!
 }

У меня есть привычка широко комментировать в моем кодировании, поэтому надеюсь, что это не оттолкнет вас. Потому что я не вижу начала и конца строки alwyys (И, следовательно, звезды и конца bблоки кода) Я использую комментарии, чтобы заявить, кто я, и где


, пожалуйста, напишите мне некоторые исправления, если это возможно, и ГДЕ мои ошибки (поскольку мне будет намного легче читать электронные письма)вслух мои голосовые программы.

Спасибо заранее всем;)

...