Vba 在同一列中复制和粘贴

Vba 在同一列中复制和粘贴,vba,excel,Vba,Excel,我现在很难复制一个专栏的内容并将其粘贴到同一个专栏的末尾。例如,如果C1:C5单元格中的列内容分别为红色、橙色、蓝色、绿色和紫色,我希望C6:C10行的内容分别为红色、橙色、蓝色、绿色和紫色。我在执行以下代码时遇到问题,错误是 此对象不支持此属性或方法 。任何帮助都将不胜感激 Dim New_Last As Long, myRng As Range New_Last = Sheets("Project").UsedRange.Rows.Count With Sheets("Project")

我现在很难复制一个专栏的内容并将其粘贴到同一个专栏的末尾。例如,如果C1:C5单元格中的列内容分别为红色、橙色、蓝色、绿色和紫色,我希望C6:C10行的内容分别为红色、橙色、蓝色、绿色和紫色。我在执行以下代码时遇到问题,错误是

此对象不支持此属性或方法

。任何帮助都将不胜感激

Dim New_Last As Long, myRng As Range
New_Last = Sheets("Project").UsedRange.Rows.Count

With Sheets("Project")
    Set myRng = Sheets("Project").Range("Z2:Z" & New_Last)
    Selection.Copy Range("z2:z" & New_Last)
    Selection.Copy
    Selection.Offset(New_Last, 0).Paste
End With

我相信你对设定一个范围有问题,但没有使用它;您有一个“选择”副本,它可能在选择范围之外,例如,选择了50行,但已指定粘贴到40行

您还有一个问题,即Z1:Z和new_last粘贴到Z2:Z和new_last,这是相同的问题

With Sheets("Project")
    Set myRng = .Range("Z2:Z" & New_Last) 
    myRng.Copy .Range("Z" & New_Last + 1)
End With

简化后,您只需复制和粘贴到定义的范围;您可以粘贴到一个简单的单元格位置,它将填充到最后一行。

我相信这就是您想要的:

Dim New_Last As Long, myRng As Range
New_Last = Sheets("Project").UsedRange.Rows.Count

With Sheets("Project")
    Set myRng = .Range("Z2:Z" & New_Last)
    myRng.Copy Range("Z" & New_Last + 1)
End With

非常感谢,看起来我有多余的一点是不必要的,并且抛出了错误。我认为这将粘贴到Z列的最后一行,粘贴时是否应该将新的_最后一行偏移到下一行?就像我下面的回答一样…@Xabier太棒了,我忘了上一次在New_之后的+1。哦,对了,是的,在你分享你的Cyril之后我注意到了,我只是自己加了一个。谢谢@Xabier