【问题标题】:Method signature changes when filtering过滤时方法签名更改
【发布时间】:2021-02-08 15:31:04
【问题描述】:

由于某种原因,它在过滤模式下不接受我的参数。 我需要做什么?

错误:

Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Filter.getRange.
CollectCases    

作品:

var SS = partner_list.getSheetByName("Ark 1");
 SS.getRange("A2:R");

不工作:

var SS = partner_list.getSheetByName("Ark 1");
 SS.getFilter().getRange("A2:R");

【问题讨论】:

    标签: google-apps-script google-sheets google-sheets-api spreadsheet


    【解决方案1】:

    导致错误的原因是SpreadsheetApp.Filter.getRange 不接受任何参数,不像SpreadsheetApp.Sheet.getRange

    它只会返回应用过滤器的范围。 (每张纸只能有一个过滤器)

    如果您只想获取过滤器范围的特定部分,这里是使用offset 的示例解决方法。

    解决方法:

    function myFunction() {
      var ss = SpreadsheetApp.getActiveSheet();
      // Filter is applied to "A6:A12" with values 1, 2, 3, 4, 5, 6
      var range = ss.getFilter().getRange();
    
      // If you only want a part of the filtered range
      // Then, you need to use offset
      // E.g. You want filtered A10:A12 with values 4, 5, 6
      var rowOffset = 3;
      var colOffset = 0;
      var rows = range.getValues().length - rowOffset;
    
      // rowOffset = number of rows offset (3 rows below)
      // colOffset = number of columns offset (same column)
      // rows = number of rows to be fetched
      Logger.log(range.offset(rowOffset, colOffset, rows).getValues());
    }
    

    输出:

    资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2022-01-23
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多