【问题标题】:Create a filterin GSheet per Scriptin根据脚本在 GSheet 中创建过滤器
【发布时间】:2022-12-01 16:07:50
【问题描述】:

我尝试创建一个简单的脚本来过滤更大的列表。

当我使用命令“ss.getRange('1:1904').createFilter();”时脚本运行完美,但是当我尝试使用变量时脚本不运行。

function myScript() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var ss = spreadsheet.getSheetByName("MyUsers");
  var lr = ss.getLastRow()
  ss.getRange('1:1904').createFilter();   //<< the script runs perfect
  ss.getRange(1, lr).createFilter();      //<< the script to not run
  
  var criteria = SpreadsheetApp.newFilterCriteria().whenTextDoesNotContain('Peking').build();
  ss.getFilter().setColumnFilterCriteria(11, criteria);
  
  //ss.getRange('2:1904').activate();

  //ss.deleteRows(ss.getActiveRange().getRow(), ss.getActiveRange().getNumRows());
  ss.getFilter().remove();
};

我确信这只是一个简单的错误,但我不知道错误出在哪里。

谁能帮忙?

谢谢

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    修改点:

    • 在ss.getRange('1:1904')的情况下,从1到1940的行用于所有列。另一方面,对于ss.getRange(1, lr),只使用了一个单元格。我认为这可能是您当前问题的原因。

    如果要将基本过滤器设置为从第 1 行到最后一行的所有列,如何进行以下修改?

    从:

    ss.getRange(1, lr).createFilter(); 
    

    至:

    ss.getRange(1, 1, lr, ss.getMaxColumns()).createFilter();
    
    • 如果要使用数据范围,可以使用ss.getDataRange().createFilter();。

    参考:

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      相关资源
      最近更新 更多