Excel VBA:粘贴问题

我已经尝试了各种方法来做这个粘贴,但没有一个是工作。 我对编程非常陌生,所以我需要一些帮助来理解为什么我不断收到错误1004或5.我什至不明白这些错误是什么意思。

Cells(hotcell).Copy Cells.Offset(0, 1).PasteSpecial 

或者… Paste,… PasteSpecial = xlpasteall,… pastespecial Paste:= xlpasteall,Range(Cells(“B”&i))。paste,Range(“B”&i).paste等等如上。

我完全亏损。 程序中的其他一切工作正常。 我只是不能得到它粘贴我的复制值到所需的单元格(所有偏移一定数量的列,但在同一行)。 帮助和解释都赞赏。

编辑谢谢我收到的答案,我能解决我的问题。 我在任何地方都找不到一个好的答案。 谢谢!

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

 rng.Offset(0, 1) = rng.Text 

再次感谢那些回答的海报和那些评论。 我做得太困难了。

有很多方法来处理这种问题,所以我会尝试列出我使用的一些。

没有粘贴的方法

 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 

简单的粘贴方法

 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 

特殊的粘贴方式

 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 

尝试从上面三个确定你想要的,并相应地修改。 ;)

希望这可以帮助。

说明:

 Cells.Offset(0,1).PasteSpecial 

这将给Error 1004因为Cells引用整个工作表范围,并且您无法抵消它。

 Cells(hotcell).Copy 

如果hotcell的值不是数字,这会给你Error 5
我认为Cells只接受数字参数,如果你使用上面的语法。

如何使用单元格 (Excel 2007及更高版本)

1.定义R,C语法:单元格(RowNumber,ColumnNumber)

 Cells(1,1) 'refers to Range("A1") Cells(1,2) 'refers to Range("B1") Cells(2,1) 'refers to Range("A2") 

2.只使用一个数字

 Cells(1) 'refers to Range("A1") Cells(2) 'refers to RAnge("B1") and so on Cells(16385) 'refers to Range("A2") 

3.仅使用单元格

 Cells.Copy 'copies the whole range in a sheet Cells.Resize(1,1).Copy 'copies Range("A1") Cells.Resize(1,1).Offset(0,1).Copy 'copies Range("B1") Cells.Resize(2,1).Copy 'copies Range("A1:A2") 

4.使用数字和字母(这只适用于Cells(RowNum,ColNum)语法)

 Cells(1, "A").Copy 'obviously copies A1 Cells(1, "A").Resize(2).Copy 'copies A1:A2 

现在,如何复制和粘贴。
假设你想复制A1:A5并粘贴到B的下一列。

 Cells.Resize(5,1).Copy Cells.Resize(5,1).Offset(0,1) 

以上将工作,因为您在进行Offset之前先ResizeCells
A1:A5的值将被复制到B1:B5。
希望这可以帮助你。