Apps 脚本(Google 张)如何使用数组执行 .setHiddenValues
Apps Script (Google Sheets) How to perform .setHiddenValues with an Array
我有一些值存储在数组中,现在我想从过滤器中删除存储在该数组中的所有值。
这些值已正确存储在数组中,但我无法从过滤器中删除这些值。
数组的名称是HideValues
这是一些代码:
var p = 0;
spreadsheet.getSheetByName('TEM Tool Data').getRange('\'TEM Tool Data\'!E1').activate();
var criteria = SpreadsheetApp.newFilterCriteria();
//Remove all PID´s from the filter
while (p < HideValues.length){
criteria.setHiddenValues([HideValues[p]]).build();
p++;}
//Filter
spreadsheet.getSheetByName('TEM Tool Data').getFilter().setColumnFilterCriteria(5, criteria);
//Copy filtered area
spreadsheet.getRange('A2:I1386').activate();
//Paste
spreadsheet.getSheetByName('Visualization').getRange('A5').activate();
spreadsheet.getRange('\'TEM Tool Data\'!A2:I1386').copyTo(SpreadsheetApp.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getSheetByName('Visualization').getRange('J3').activate();
};
你不需要遍历数组
如果您的数组类似于 var HideValues = [1,2,3,4,5];
、
您可以简单地指定 criteria.setHiddenValues(HideValues).build();
- 无需 while
循环
另外:
- 对于过滤器,您应该首先创建它(如果尚未创建)并将其应用于范围,而不是 sheet:
var filter = spreadsheet.getSheetByName('TEM Tool Data').getDataRange().createFilter();
filter.setColumnFilterCriteria(3, criteria);
- 你应该将它应用于一个范围,而不是 sheet
我有一些值存储在数组中,现在我想从过滤器中删除存储在该数组中的所有值。 这些值已正确存储在数组中,但我无法从过滤器中删除这些值。
数组的名称是HideValues
这是一些代码:
var p = 0;
spreadsheet.getSheetByName('TEM Tool Data').getRange('\'TEM Tool Data\'!E1').activate();
var criteria = SpreadsheetApp.newFilterCriteria();
//Remove all PID´s from the filter
while (p < HideValues.length){
criteria.setHiddenValues([HideValues[p]]).build();
p++;}
//Filter
spreadsheet.getSheetByName('TEM Tool Data').getFilter().setColumnFilterCriteria(5, criteria);
//Copy filtered area
spreadsheet.getRange('A2:I1386').activate();
//Paste
spreadsheet.getSheetByName('Visualization').getRange('A5').activate();
spreadsheet.getRange('\'TEM Tool Data\'!A2:I1386').copyTo(SpreadsheetApp.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getSheetByName('Visualization').getRange('J3').activate();
};
你不需要遍历数组
如果您的数组类似于 var HideValues = [1,2,3,4,5];
、
您可以简单地指定 criteria.setHiddenValues(HideValues).build();
- 无需 while
循环
另外:
- 对于过滤器,您应该首先创建它(如果尚未创建)并将其应用于范围,而不是 sheet:
var filter = spreadsheet.getSheetByName('TEM Tool Data').getDataRange().createFilter();
filter.setColumnFilterCriteria(3, criteria);
- 你应该将它应用于一个范围,而不是 sheet