将范围复制到目标并返回目标范围

Rhi*_*non 2 excel vba range

我想以返回新范围的方式将范围复制到新位置,然后我可以将其存储在变量中以供进一步处理。

我收集复制单元格的常用方法是使用 Range.Copy 方法:

Dim rCopiedRange As Range, rRangeToCopy as Range, rStartLocation as Range
Set rRangeToCopy = ActiveWorkbook.Sheets(1).Range("C4:F10")
Set rStartLocation = ActiveWorkbook.Sheets(2).Range("A2")
rRangeToCopy.Copy rStartLocation
Run Code Online (Sandbox Code Playgroud)

但由于这是一种方法,我无法将结果设置为变量并且

Set rCopiedRange = rRangeToCopy.Copy rStartLocation
Run Code Online (Sandbox Code Playgroud)

是一个语法错误。

如何将范围复制到新位置,以便将新范围(在本例中是工作表 2 的范围 A2 到 D6)存储为变量?

SJR*_*SJR 5

您可以使用Resize方法,因为您知道目标范围的大小将与源范围相同。

Set rCopiedRange = rStartLocation.resize(rRangeToCopy.rows.count,rRangeToCopy.columns.count)
Run Code Online (Sandbox Code Playgroud)

使用Resize,您可以直接转移范围,而无需涉及剪贴板。