如何自动选择范围而无需手动输入?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何自动选择范围而无需手动输入?相关的知识,希望对你有一定的参考价值。

我想知道是否有办法根据选定的过滤器自动选择单元格范围。

示例: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);
}

References:

以上是关于如何自动选择范围而无需手动输入?的主要内容,如果未能解决你的问题,请参考以下文章

无需手动输入即可自动完成反向地理编码的数据

从自动完成列表提交查询,而无需点击提交按钮

如何自动从 Slack 获取访问令牌?

我们可以通过编程自动加入信号最强的WiFi,无需手动选择吗?

rf对时间控件的操作

您如何设置 python 项目以便能够发送给其他人,而无需他们手动将代码复制并粘贴到编辑器中 [重复]