google-apps-script - 如何从过滤器中自动选择范围而无需手动输入?

标签 google-apps-script google-sheets filter filtering

我想知道是否有办法根据所选过滤器自动选择单元格范围。
例子:
Sample

  • 在(H 列)中设置过滤器
  • 自动选择从 A 列(A2000)开始的结果单元格数据:C 列(C5000)等 --- 这就是我被卡住的地方。我不知道如何编写以根据所选过滤器自动选择结果单元格数据。

  • 目前,我的锻炼是手动输入单元格,以便我可以继续编写代码。我希望我在上面说得有道理。
    - - 代码 - -
    function ColHtoActive() {
      var ss = SpreadsheetApp.getActive();
      var sheet = ss.getSheetByName('Current');  
      var crange = sheet.getRange('A7:I7350').activate();                                
      var currentCell = sheet.setCurrentCell(sheet.getRange('H7'); 
      var hSfilter = sheet.getRange('A7:I7350').createFilter(); 
      var ccC1 = sheet.getRange('H7').activate();
      var cCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues('Inactive']).build(); 
    
      sheet.getFilter().setColumnFilterCriteria(8, cCriteria);    
    }
    
    function copycolA() {
      var ss = SpreadsheetApp.getActive().getSheetByName('A');
      ss.getRange('A2307').activate();
      ss.getRange('A2307:A7155').copyTo(
          ss.getActiveRange(),
          SpreadsheetApp.CopyPasteType.PASTE_NORMAL,
          false);
    }
    

    最佳答案

    您可以从 getFilter().getRange() 获取过滤后的范围维度。 .这将复制所有过滤的范围:

    function copycolA() {
      var sourceSheet = SpreadsheetApp.getActive().getSheetByName('Current');
      var targetSheet = SpreadsheetApp.getActive().getSheetByName('A');
      var sourceRange = sourceSheet.getFilter().getRange();
      sourceRange.copyTo(
        targetSheet.getRange('A1'),
        SpreadsheetApp.CopyPasteType.PASTE_NORMAL,
        false);
    }
    
    阅读:
  • Filter#Range
  • Related answer
  • 关于google-apps-script - 如何从过滤器中自动选择范围而无需手动输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52212388/

    相关文章:

    javascript - 结果中仅出现数组中的一个值

    node.js - 无法从命令行运行 clasp

    javascript - 如何在 Google Apps 脚本中修改 HTMLOutput 之前的 html 文件

    google-apps-script - 如何在 Google App 脚本中创建下拉提示

    types - 无法看到 Ctrl-N 和其他类似命令的 resharper 弹出窗口

    javascript - 提高性能谷歌应用脚​​本将数据从多个电子表格复制到一个

    javascript - 在 onEdit 触发器的事件对象中,如何将 range get 同时定义为实际范围对象和属性标识符?

    javascript - Google App Script - 如何获取指定行的所有值?

    css - 将 IE 7 和 8 的 CSS 过滤器属性用于渐变以及背景图像会降低图像的不透明度吗?

    javascript - 从列表选项生成文本字段