我有一个使用两个视图的Google电子表格:
在“过滤器”视图中,用户可以更新一些单元格,这将更改排序顺序。我希望排序立即更新。
我已经找到了许多在线脚本,它们可以在编辑时自动进行排序,但是我只希望在激活“过滤器”视图时发生这种情况。
我没有找到检测某个Filter视图是否处于活动状态的方法,也没有发现任何可返回当前列排序的方法。
关于如何做到这一点的任何想法?
答案 0 :(得分:2)
您可以在排序函数中编写一个简单条件,以测试工作表过滤器是否处于活动状态。 Sheet类的isRowHiddenByFilter(rowPosition)
方法返回给定的行是否被过滤器隐藏。
function checkSheetFilter() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getRange(1,1, sheet.getLastRow(), 1).getValues().length;
var isFilterActive = false;
for (var r=0; r<rows && !isFilterActive; r++) {
if (sheet.isRowHiddenByFilter(r+1)) {
isFilterActive = true
}
}
Logger.log(isFilterActive);
}