В настоящее время я использую сценарий, который меняет фильтры многих сводных таблиц (около 11) один за другим по порядку, что занимает очень много времени. Насколько мне известно, в Google App Script изменение фильтра означает удаление сводной таблицы и создание новой с новыми фильтрами.
Я пытаюсь создать код, который изменяет фильтр всех сводных таблиц в то же время. Есть ли способ сделать это, например, создать код, который запускает 11 сценариев (по 1 для каждой сводной таблицы) одновременно или что-то в этом роде?
Вот мой текущий сценарий:
function REFRESH_PL() {
var cons = SpreadsheetApp.openById("xxx"); //my spreadsheet
var funds = ["P&L PLEN","P&L SELET","P&L PRISM","P&L TOR","P&L RTSC","P&L FIMEMP","P&L FIIEMP","P&L FIPST","P&L FIPLT", "P&L FICFIMLT", "P&L ANK"]; //the sheets
var filters1 = ["PLEN","SELET","PRISM",'TORD','RTSC','FIMEMP','FIIEMP','FIPST','FIPLT','FICFIMLT','ANK'] //some filters I DON'T WANT to change
var dates = cons.getSheetByName("Check").getRange("E4:E14").getValues() //the filters I WANT to change/update
for (var i in funds){
var date = dates[i][0]
var aba = cons.getSheetByName(funds[i]);
aba.getRange("I14").activate() //Cell in which is the pivot table
aba.getRange("I14").getValue()
var fonte = aba.getRange('\'Consolidado_BD (2)\'!A:V'); //pivot tables source
var pvt = aba.getRange('G13').createPivotTable(fonte); //pivot tables
var pivotValue = pvt.addPivotValue(14, SpreadsheetApp.PivotTableSummarizeFunction.SUM);
var pivotGroup = pvt.addRowGroup(4);
pivotGroup.showTotals(false);
pivotGroup = pvt.addRowGroup(7);
pivotGroup.showTotals(false);
pivotGroup = pvt.addColumnGroup(2);
pivotGroup.showTotals(false);
var filter = SpreadsheetApp.newFilterCriteria() //Adding the filters I want to change
.setVisibleValues(['30/06/2020',date])
.build();
pvt.addFilter(2, filter);
filter = SpreadsheetApp.newFilterCriteria()
.setVisibleValues([filters1[i]])
.build();
pvt.addFilter(3, filter); //Adding the filters I don't want to change (they keep the same)
SpreadsheetApp.flush()
}};