我想将一个范围的值放到一个数组中,处理数组数据,然后将该数组中的值设置回它来自的范围,考虑到该范围可能包含一些隐藏的行。
让我们举一个两列的例子:
----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,则需要很长时间。使用数组来设置范围的值要快得多,并且它适用于不存在过滤器的情况。
答案 0 :(得分:0)
将数组结果应用到另一张表中,并用vlookup
或=refercells
引用公式中的那些范围
range("A2:A"&lrow).formula = "=sheetnamecell"
这是将数组结果应用回过滤范围的唯一方法。如果未过滤数组范围,则可以将结果直接应用于该范围。
谢谢, Prabhu Murugan