"Отсутствует; до заявления." в скрипте Google Sheets - PullRequest
0 голосов
/ 07 февраля 2020

С помощью макроса я хочу скопировать данные с одного листа на другой. Цель сценария - распознать выбранный идентификатор проекта, установить фильтр на другом листе, чтобы копировались только строки с указанным c идентификатором проекта.

Я получаю сообщение об ошибке «Отсутствует» ; before оператор. (строка 49, файл "macros") "в строке 49.

Вот как выглядит мой скрипт прямо сейчас:


  //Counting variable i
  var i = 1;

  //Array with all PID´s
  var HideValues = [0,1];

  var spreadsheet = SpreadsheetApp.getActive();

  //Set active sheet to Visualization
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Visualization'), true);

  //Variable with selected PID
  var SelectedPID = SpreadsheetApp.getActiveSheet().getRange('C1').getValue();

  //Set active sheet to PID
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('PID'), true);

  //Variables with row and column to go through all PID´s
  var row = 2;
  var col = 1;

  //Add all PID´s to an array
  while (i < 500) {
  HideValues.push(SpreadsheetApp.getActiveSheet().getRange(row, col  ).getValue());
  i++;
  row++;
  }

  //Set active sheet to TEM Tool Data
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('TEM Tool Data'), true);
  spreadsheet.getRange('\'TEM Tool Data\'!E1').activate();
  var criteria = SpreadsheetApp.newFilterCriteria(); 

  //Remove all PID´s from the filter
  While (i<500){                              //Line with the error message
  .setHiddenValues([HideValues[i-1]])
  .build();
  i++;
  }  

  //Add selected PID to the filter
  .setVisibleValues([SelectedPID])
  .build();

  //Filter
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);

  //Copy filtered area
  spreadsheet.getRange('A2:I1386').activate();

  //Set active sheet to Visualization
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Visualization'), true);

  //Paste
  spreadsheet.getRange('A5').activate();
  spreadsheet.getRange('\'TEM Tool Data\'!A2:I1386').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('J3').activate();
};

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Две вещи:

  • вы звоните setHiddenValues() и setVisibleValues() на ничего . Я не знаю, что вы хотите им назвать, может быть criteria или spreadsheet?

  • ключевое слово while должно состоять из строчных букв ( docs ).

    В приведенном ниже примере показано, что использование While (с большой буквы) не работает:

    While (true) {}
    
      
0 голосов
/ 07 февраля 2020

Вы должны иметь while все строчные, и вы пропустили точку с запятой в .setHiddenValues([HideValues[i-1]]), которая вызывает вашу ошибку.

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