【发布时间】:2022-01-22 03:57:51
【问题描述】:
我正在尝试创建一个脚本,该脚本在我的 google 工作表中的 11 个不同工作表中运行。此功能本质上只会删除当前过滤器(如果适用)并创建一个包含更新信息的过滤器。我遇到的问题是,我只在过滤器不等于 null 时才删除过滤器的逻辑似乎不起作用,因为我不断收到“异常:您无法在已经有过滤器”,但是我的filter.remove 应该已经删除了它。我已经盯着这个看了好几个小时,非常感谢一些帮助。这是我的脚本的副本,它有点长,如果可能的话我最好也想缩短它。
function Filter_All() {
///Set Variables
var spreadsheet = SpreadsheetApp.getActive();
var filter = spreadsheet.getActiveSheet().getFilter();
var criteria = SpreadsheetApp.newFilterCriteria()
var daycount = 0
var MILLIS_PER_DAY = 1000*60*60*24*daycount
var now = new Date();
var filterdate = new Date(now.getTime() - MILLIS_PER_DAY);
///Select "MTD Assignments"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('MTD-Assignments'), true);
///Remove filter
if (filter !== null) {
filter.remove();
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Torian"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Torian'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Luke"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Luke'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Charity"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Charity'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Tenisha"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Tenisha'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Shannon"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Shannon'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Siley"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Siley'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Macheera"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Macheera'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Nia"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Nia'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Alicia"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Alicia'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
///Select "Shannon/Johan/Meybeling"
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Shannon/Johan/Meybeling'), false);
///Remove filter
if (filter !== null) {
filter.remove();
return;
}
///Create Filter
spreadsheet.getActiveSheet().getRange('A:N').createFilter();
criteria = SpreadsheetApp.newFilterCriteria()
.whenDateAfter(filterdate)
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
};
【问题讨论】:
标签: javascript html google-apps-script google-sheets