gpt4 book ai didi

arrays - 存在过滤器时使用数组设置范围的值

转载 作者:行者123 更新时间:2023-12-04 20:57:52 24 4
gpt4 key购买 nike

我想将一个范围的值放入一个数组,处理数组数据,然后将该数组中的值设置回它来自的范围,考虑到该范围可能包含一些隐藏的行。

让我们以一张有两列的表格为例:

----A-------B-----
VALUE | FILTER
1 | P
2 | N
3 | N
4 | P
5 | P

然后应用自动过滤器并将 B 列设置为仅显示带有“P”的单元格,这将隐藏第 3 行和第 4 行。

我得到这样的范围:
Sub WorkRange()
Dim R As Range

Set R = ActiveSheet.Range("A2:A6")
Values = R.Value

Values(1, 1) = "New 1"
Values(2, 1) = "New 2"
Values(3, 1) = "New 3"
Values(4, 1) = "New 4"
Values(5, 1) = "New 5"

R.Value = Values
End Sub

该代码将获取从 A2 到 A6 的值,包括由 AutoFilter 定义过滤掉的隐藏行。当我尝试使用更改的数据设置该范围的值时,它会保持隐藏行不变并将可见单元格(单元格 A2、A5 和 A6)设置为“新 1”。

无论行状态如何,我都想在该范围内设置值。

我有一些有数千行的表。如果我使用 .Cells 逐行更改,则需要的时间太长。使用数组来设置范围的值要快得多,并且它适用于不存在过滤器的情况。

最佳答案

将数组结果应用到不同的工作表中,并使用 vlookup 在公式中引用这些范围或 =refercellsrange("A2:A"&lrow).formula = "=sheetnamecell"这是将数组结果应用回过滤范围的唯一方法。如果未过滤数组范围,您可以直接将结果应用于范围。

关于arrays - 存在过滤器时使用数组设置范围的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com