将范围复制到虚拟范围

Cod*_*per 2 excel vba excel-vba

是否可以将范围复制到虚拟范围,还是要求我将其粘贴到工作簿的另一个范围内?

dim x as range
x = copy of Range("A1:A4")
Run Code Online (Sandbox Code Playgroud)

显然我通常使用以下代码

dim x as range
set x = Range("A1:A4")
Run Code Online (Sandbox Code Playgroud)

但在上面的例子中,它只使xa"快捷"到该范围而不是范围对象本身的副本.这通常是我想要的,但最近我发现在内存中而不是在某个工作簿中完全保存范围及其所有属性是非常有用的.

Jea*_*ett 7

我想这就是你要做的事情:

'Set reference to range
Dim r As Range
Set r = Range("A1:A4")

'Load range contents to an array (in memory)
Dim v As Variant
v = r.Value

'Do stuff with the data just loaded, e.g.
'Add 123 to value of cell in 1st row, 3rd column of range 
v(1,3) = v(1,3) + 123

'Write modified data back to some other range
Range("B1:B4").Value = v
Run Code Online (Sandbox Code Playgroud)