google-apps-script - 如何仅从范围中获取过滤后的值?
问题描述
我有一张包含一些数据的表格。第一列包含 ID,即按升序排列的一系列连续数字(ID:1、2、3、4、5),第二列包含未排序的名称(NAME:C、B、A、D、E)。在我应用任何过滤器.getSelection().getCurrentCell().getValues()
或.getDisplayValues()
函数返回所需单元格的正确内容之前。
然后我将过滤器应用于两列并按字母顺序对第二列进行排序。第一个 col 变为:ID:3、2、1、4、5。例如,我从第一行( 3A )中选择项目,但脚本返回我在应用过滤器( 1C )之前在这些单元格中的值。
所以我基本上需要获取应用过滤器后出现的选定值。
解决方案
过滤器用于从视图中隐藏数据。不可能通过任何.get*()
方法获取该数据。但是,所有range.copy*()
方法都会将过滤后的值复制到所需的范围。如果您的用例是复制,请使用
如果您需要直接访问脚本操作的值,您可以:
getValues()
并在 JavaScript 中以编程方式过滤它或range.copy*()
使用和getValues()
从新范围复制过滤值到另一个范围或