С помощью макроса я хочу скопировать данные с одного листа на другой. Цель сценария - распознать выбранный идентификатор проекта, установить фильтр на другом листе, чтобы копировались только строки с указанным c идентификатором проекта.
Я получаю эту ошибку:
TypeError: Не удается найти функцию newFilterCriteria в объекте Spreadsheet.
function CopyData() {
//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 = spreadsheet.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;
var rowCheck = 2;
var colCheck = 3;
var isSelected = spreadsheet.getActiveSheet().getRange(rowCheck, colCheck ).getValue();
//Add all PID´s to an array
while (i < 500) {
if (isSelected == 0){
HideValues.push(spreadsheet.getActiveSheet().getRange(row, col ).getValue());
i++;
row++;
rowCheck++;}
else {
i++;
row++;
rowCheck++;}}
//Set active sheet to TEM Tool Data
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('TEM Tool Data'), true);
spreadsheet.getRange('\'TEM Tool Data\'!E1').activate();
var criteria = spreadsheet.newFilterCriteria();
//Remove all PID´s from the filter
while (i<500){
criteria.setHiddenValues([HideValues[i-1]])
.build();
i++;}
//Add selected PID to the filter
//criteria.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(), spreadsheet.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getRange('J3').activate();
};