0

可能重复:
在 VBA 中调用范围

我正在为此任务尝试此代码。我注意到,当我没有将范围设置为名称时,代码可以工作,但是当我将数据块命名为“rng”时,代码会给我一个错误。我在这段代码中做错了什么?谢谢!

Sub Macro2()
Dim rng As Range

Set rng = ActiveCell.CurrentRegion.Copy
Cells(1, "d").Select

rng.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteValues
Application.CutCopyMode = False


End Sub
4

1 回答 1

2

Range.Copy不返回复制的范围。它将范围复制到剪贴板并返回一个Boolean值。

当您粘贴时,您会调用PasteSpecial工作表上的目标区域,而不是“复制”范围。

Dim source as Range, target as Range

Set source = ActiveCell.CurrentRegion
Set target = ActiveSheet.Cells(1, "d")

source.Copy
target.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
Application.CutCopyMode = False

另请注意,Operation不接受xlPasteValues,您可能的意思xlPasteSpecialOperationNone

于 2012-11-10T21:23:06.577 回答