Google apps script 自动排序范围,但仅当过滤器视图处于活动状态时
我有一个谷歌电子表格,它使用两个视图:Google apps script 自动排序范围,但仅当过滤器视图处于活动状态时,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个谷歌电子表格,它使用两个视图: 没有要添加数据的筛选器视图。行仅添加在底部 筛选视图,在列上进行排序,以读取/处理数据 在“过滤器”视图中,用户可以更新某些单元格,从而更改排序顺序。我想排序立即更新 我在网上找到了很多脚本,可以在编辑时自动排序,但我只希望在过滤器视图处于活动状态时发生这种情况 我还没有找到检测某个过滤器视图是否处于活动状态的方法,也没有找到任何返回当前列排序的方法 有什么办法吗?您可以在排序函数中编写一个简单条件,用于测试纸张过滤器是否处于活动状态。Sheet类的i
- 没有要添加数据的筛选器视图。行仅添加在底部
- 筛选视图,在列上进行排序,以读取/处理数据
有什么办法吗?您可以在排序函数中编写一个简单条件,用于测试纸张过滤器是否处于活动状态。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);
}
函数checkSheetFilter(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getRange(1,1,sheet.getLastRow(),1).getValues().length;
var isFilterActive=false;
对于(var r=0;r)该筛选器视图没有筛选出任何行,只是进行了不同的排序。我是否应该添加一个虚拟行并将其筛选出来?为什么不使用筛选器?@TheMaster:问题是,当数据发生更改时,排序不会立即更新。