首页 > 解决方案 > 将范围复制到目的地并返回目的地范围

问题描述

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

我收集复制单元格的常用方法是使用 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

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

Set rCopiedRange = rRangeToCopy.Copy rStartLocation

是语法错误。

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

标签: excelvbarange

解决方案


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

Set rCopiedRange = rStartLocation.resize(rRangeToCopy.rows.count,rRangeToCopy.columns.count)

使用调整大小,您可以直接传输范围而不涉及剪贴板。


推荐阅读