我觉得有点傻,但我想不出.
我的工作是每月从一个提供的XML文件中生成一个新的主分析表,该文件与我们(多个)表的各个列组合在一起。到目前为止没有问题。我已经按照我想要的方式工作了。:-)
我的问题是,我们还有大约6-8个过滤器保存在一个特定的表中,这样我们的审计师就可以专注于特定的领域(正如您所理解的,我们的审计师希望这些过滤器能够按照他们指定的那样工作)。
我尝试过使用createFilter(),但似乎没有任何方法将多个过滤器保存到该工作表中(也许我遗漏了什么)。不joy!-(
我已经尝试记录一个宏,然后我可以运行这个宏来创建过滤器。这里也没有joy:-
我是否需要告诉这些讨厌的审计师每个月都要创建自己的过滤器(他们知道如何做,但它在他们的下面),还是有什么方法我可以把他们写下来,让他们离开我的背?
不幸的是(尽管我很想),我不能共享我们的工作表或脚本,因为我们在那里嵌入了大量的IP。
如果可能的话,我非常希望你能对你如何处理这个问题提供一些指导。
亲切的问候
伊恩
发布于 2020-09-13 09:27:30
如果您确实是在谈论“创建新的过滤器视图”,我建议您制作一个模板表。因此,不要每个月创建一个新的表格,而要制作一个模板电子表格,并添加您的审计师所希望的所有过滤器视图。然后复制该电子表格,并将新数据粘贴到其中。
发布于 2020-09-14 11:42:19
使用Apps脚本和createFilter()创建过滤器的正确方法如下:
function setFilters() {
var ss = SpreadsheetApp.getActiveSheet();
var rangeFilter = ss.getRange("INPUT_YOUR_RANGE_HERE");
var filter = rangeFilter1.createFilter();
var filterCriteria = SpreadsheetApp.newFilterCriteria();
filterCriteria.ADD_YOUR_CRITERIA_HERE;
filter.setColumnFilterCriteria(columnPosition, filterCriteria.build());
}如您所见,您必须使用build()来为您创建的筛选器构建条件。
您还可以使用Sheet高级服务并使用Sheets API创建过滤器,类似于以下内容:
var filterSettings = {
//YOUR FILTER SETTINGS
};
var request = [{
"setBasicFilter": {
"filter": filterSettings
}
}];至于调用Sheet服务和应用上面的筛选器,您可以使用以下命令:
Sheets.Spreadsheets.batchUpdate({'requests': request}, SPREADSHEET_ID);参考文献
https://stackoverflow.com/questions/63868668
复制相似问题