我不想恢复多年前发布的旧主题,所以我开始了一个新主题。线程在这里
在那个线程中,我找到了答案。我需要以下脚本来删除工作表中的过滤器:
function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetId = ss.getActiveSheet().getSheetId();
var requests = [{
"clearBasicFilter": {
"sheetId": sheetId
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
问题是,以上代码仅删除了我正在使用的当前活动工作表中的过滤器。我要删除所有工作表中的过滤器。
这是我尝试过的:
function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetId = ss.getActiveSheet().getSheetId();
var requests = [{
"clearBasicFilter": {
"sheetId": sheetId
}
}];
for(var i = 0; i < ss.length; i++) {
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
}
在这里,我试图添加一个for循环来遍历整个工作簿,但是我的for循环并不完全正确。有人可以帮我吗?
我了解到您想删除电子表格中所有工作表的过滤器。如果我的理解是正确的,那么该修改如何?
getSheets()
。sheetId
的"sheetId": sheetId
。function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetIds = ss.getSheets();
for (var i in sheetIds) {
var requests = [{
"clearBasicFilter": {
"sheetId": sheetIds[i].getSheetId()
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
}
如果我误解了您的问题,对不起。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句