在VBA中设置范围

可能重复:
在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 

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