Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何按字体颜色过滤工作表并复制过滤后的单元格而不使用循环?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何按字体颜色过滤工作表并复制过滤后的单元格而不使用循环?

Google apps script 如何按字体颜色过滤工作表并复制过滤后的单元格而不使用循环?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一张3000多行的床单。我需要按文本颜色过滤一个特定列,然后将过滤后的单元格复制到另一张表中。新的FILTER类允许我使用多种不同类型的条件进行过滤,但是颜色类型过滤器仍然无法通过应用程序脚本使用 我可以通过使用第二张工作表手动对其应用文本颜色过滤器,然后让我的脚本转到第二张工作表,然后在第2张工作表的过滤列上使用.getColumnFilterCriteria().copy(),复制颜色过滤器标准 然而,虽然我能够过滤我需要的行,但我也需要将过滤后的单元格复制到第二张纸上,我找不到方法来做

我有一张3000多行的床单。我需要按文本颜色过滤一个特定列,然后将过滤后的单元格复制到另一张表中。新的
FILTER
类允许我使用多种不同类型的条件进行过滤,但是颜色类型过滤器仍然无法通过应用程序脚本使用

我可以通过使用第二张工作表手动对其应用文本颜色过滤器,然后让我的脚本转到第二张工作表,然后在第2张工作表的过滤列上使用
.getColumnFilterCriteria().copy()
,复制颜色过滤器标准

然而,虽然我能够过滤我需要的行,但我也需要将过滤后的单元格复制到第二张纸上,我找不到方法来做到这一点

“最简单”的解决方案是使用FOR循环,并使用
isrowhidenbyfilter(row)
方法逐行检查。然而,对于3000行的工作表(并且每天都在增长),执行循环将花费很长时间,可能超过Google脚本的最大执行时间(6分钟)

所以我试图找到解决方法,这样我就可以过滤并复制过滤后的单元格到另一张表中,而不必经过循环


谢谢

我能问一下你的问题吗?在您的问题中,工作表的行由基本过滤器隐藏和显示。您希望使用Google Apps脚本检索显示的行。我的理解正确吗?关于
“最简单”的解决方案是使用FOR循环,并使用isrowhidenbyfilter(row)方法逐行检查。然而,对于3000行的工作表(每天都在增长),执行循环将花费很长时间,可能超过Google脚本的最大执行时间(6分钟)。
,您能提供您的脚本吗?如果可以,请将其添加到您的问题中。@Tanaike
工作表的行是隐藏的,并由基本筛选器显示?
:否。在我的工作表中,所有行都是可见的,脚本会对其应用筛选器,隐藏所有不需要的行。谢谢您的回答。我为我糟糕的英语水平深表歉意。在您的问题中,我认为您使用的是基本过滤器。我为此道歉。根据您的回复,在您的情况下,行被隐藏并显示,而不使用基本过滤器。您希望检索显示的行。我的理解正确吗?只需使用sheet.getRange().getBackgrounds()获取所有背景颜色,然后将数据表放置到getRange().getValues()。循环浏览数据,并根据任何与之重复的背景来确定如何处理数据,但如果没有向上投票,则无法添加数据。如果这些答案不能让你满意,请你澄清,或者问一个新问题或你的问题,说明为什么它不是重复的。简单的答案是
。getFilter().getRange().copyTo()
只会复制筛选的范围。我可以问一下您的问题吗?在您的问题中,工作表的行由基本过滤器隐藏和显示。您希望使用Google Apps脚本检索显示的行。我的理解正确吗?关于
“最简单”的解决方案是使用FOR循环,并使用isrowhidenbyfilter(row)方法逐行检查。然而,对于3000行的工作表(每天都在增长),执行循环将花费很长时间,可能超过Google脚本的最大执行时间(6分钟)。
,您能提供您的脚本吗?如果可以,请将其添加到您的问题中。@Tanaike
工作表的行是隐藏的,并由基本筛选器显示?
:否。在我的工作表中,所有行都是可见的,脚本会对其应用筛选器,隐藏所有不需要的行。谢谢您的回答。我为我糟糕的英语水平深表歉意。在您的问题中,我认为您使用的是基本过滤器。我为此道歉。根据您的回复,在您的情况下,行被隐藏并显示,而不使用基本过滤器。您希望检索显示的行。我的理解正确吗?只需使用sheet.getRange().getBackgrounds()获取所有背景颜色,然后将数据表放置到getRange().getValues()。循环浏览数据,并根据任何与之重复的背景来确定如何处理数据,但如果没有向上投票,则无法添加数据。如果这些答案不能让你满意,请你澄清,或者问一个新问题或你的问题,说明为什么它不是重复的。简单的答案是
。getFilter().getRange().copyTo()
只会复制过滤后的范围。