【问题标题】:How to refresh a filter onEdit() in Google sheets?如何在 Google 表格中刷新过滤器 onEdit()?
【发布时间】:2021-01-04 06:23:21
【问题描述】:

我有一张表格,根据我在下拉列表中选择的值,我用 Hlookups 填充数据。

每次我更改下拉列表中的值(这会更改整个数据集)时,我都想过滤(隐藏)第 3 列中具有 NULL 或空白值的行。

如果我创建一个普通的过滤器,它不会在数据更改时刷新。

var PARAMETER_ROW_NUMBER = 5; //The parameters goes from Row 1 to this Row
var PARAMETER_COLUMN_NUMBER = 2; //The column where the dropdowns with the parameters for the VLOOKUPs are


function onEdit() 
{
  var thisSheet = SpreadsheetApp.getActiveSheet();
  if( thisSheet.getName() == "By Place" ) 
  {
    var cell = thisSheet.getActiveCell();
    var cellRow = cell.getRow();
    var cellColumn = cell.getColumn();
    if( cellColumn == PARAMETER_COLUMN_NUMBER && cellRow <= PARAMETER_ROW_NUMBER)
    {
      setFilter(); // Execute the filter to clean null rows each time I change the values in the dropdowns
      var rowDiff = PARAMETER_ROW_NUMBER - cellRow;
      cell.offset( 1, 0, rowDiff).setValue(''); // As the parameters are dependent dropdowns, I clear the dropdowns if one changes
    }
    
  }
}

function setFilter() 
{
  var ss = SpreadsheetApp.getActiveSheet();
  var rang = ss.getDataRange();
  var filtercriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues([' ','']).build();
  var filter = rang.getFilter() || rang.createFilter();
  filter.setColumnFilterCriteria(3, filtercriteria); // I want to hide the rows which has a null or blank in column 3
}

setFilter() 函数不起作用。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    你用来设置隐藏值的数组不正确,试试你的代码:

    function setFilter() 
    {
      var ss = SpreadsheetApp.getActiveSheet();
      var rang = ss.getDataRange();
      var filterCriteria = SpreadsheetApp
                             .newFilterCriteria()
                             .setHiddenValues(['NULL', ''])
                             .build();
      var filter = rang.getFilter() || rang.createFilter();
      filter.setColumnFilterCriteria(3, filterCriteria);
    }
    

    此外,如果您想查看您的 onEdit 执行的日志,您可以在您的 Apps 脚本文件中点击查看 - > Executions,在那里你将能够看到你得到的错误。

    文档

    我使用这些文档来帮助您:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多