【发布时间】:2020-10-14 15:48:06
【问题描述】:
我正在尝试使用以下脚本更新表格中 50 多个个人过滤器视图的范围。我使用了下面的代码,我发现here,(顺便说一句很有帮助!)。
我唯一的问题是,如果我有每个唯一的 filterViewId,这会很好。此处是否有一种方法可以修改此脚本以将更新后的范围应用于标题为“MY SHEET”的工作表中的所有过滤器视图?
function UpdateFilterView() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheetByName('MY SHEET');
var lastRow = dataSheet.getLastRow();
var lastColumn = dataSheet.getLastColumn();
var sheetId = dataSheet.getSheetId();
var filterSettings = {
"filterViewId": "1099738202",
"range":{
"sheetId": sheetId,
"startRowIndex": 0,
"endRowIndex": lastRow,
"startColumnIndex": 0,
"endColumnIndex": lastColumn
}
};
var requests = [{
"updateFilterView":{
"filter": filterSettings,
"fields": "*",
}
}];
Sheets.Spreadsheets.batchUpdate({"requests":requests}, ss.getId());
}
【问题讨论】:
-
在你的情况下,比如有2个过滤视图,你想如何设置每个过滤视图的过滤器?
-
@tanaike 我想对每个过滤视图应用相同的设置,以便每个过滤视图的范围相同(范围需要更新以包含整个工作表)。
-
感谢您的回复。根据您的回复,我提出了一个修改后的脚本作为答案。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
-
确认,您提供的修改后的脚本完全按照预期的方式更新单个工作表中所有 filterview 范围的范围。你节省了我几个小时的时间,非常感谢!
-
感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
标签: google-apps-script google-sheets