我正在为此任务尝试此代码。我注意到,当我没有将范围设置为名称时,代码可以工作,但是当我将数据块命名为“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
答案 0 :(得分: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
。