Excel VBA:粘贴问题

liz*_*053 4 excel vba paste excel-vba

我已经尝试了多种方法来执行此粘贴,但它们都没有工作.我对编程非常陌生,所以我需要一些帮助来理解为什么我一直得到错误1004或5.我甚至不明白这些错误是什么意思.

Cells(hotcell).Copy
Cells.Offset(0, 1).PasteSpecial
Run Code Online (Sandbox Code Playgroud)

或...粘贴,... PasteSpecial = xlpasteall,... pastespecial粘贴:= xlpasteall,范围(单元格("B"和i)).粘贴,范围("B"和i).paste,等等如上.

我完全失去了.该计划中的其他所有工作都很好.我只是无法将我复制的值粘贴到所需的单元格中(所有列都偏移了一定数量的列,但是在同一行中).帮助和解释都赞赏.

编辑感谢我收到的答案,我能够解决我的问题.在我看的任何地方,我真的找不到一个好的答案.谢谢!

我使用的解决方案是最简单的解决方案之一:

rng.Offset(0, 1) = rng.Text
Run Code Online (Sandbox Code Playgroud)

再次感谢回答的海报以及评论的海报.我太难了.

Jer*_*ino 5

有很多方法可以解决这类问题所以我会尝试列出一些我使用的方法.

无粘贴方法

Sub CP1()
    'This basically just transfers the value without fuss.
    Dim Rng As Range
    Set Rng = Range("A1")
    Rng.Offset(0,1) = Rng.Value
End Sub
Run Code Online (Sandbox Code Playgroud)

简单的粘贴方法

Sub CP2()
    'This copies a cell exactly as it is.
    Dim Rng As Range
    Set Rng = Range("A1")
    Rng.Copy Rng.Offset(0,1) 'Read: Copy Rng to Rng.Offset(0,1).
    Application.CutCopyMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)

特殊粘贴方法

Sub CP3()
    'This copies the format only.
    Dim sRng As Range, tRng As Range
    Set sRng = Range("A1")
    Set tRng = sRng.Offset(0, 1)
    sRng.Copy
    tRng.PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)

尝试从上面三个中确定您想要的并相应地进行修改.;)

希望这可以帮助.