我尝试了多种方法来执行此粘贴,但它们都没有工作。我对编程非常陌生,所以我需要一些帮助来理解为什么我一直得到错误1004或5.我甚至不明白这些错误是什么意思。
Cells(hotcell).Copy
Cells.Offset(0, 1).PasteSpecial
或... Paste,... PasteSpecial = xlpasteall,... pastespecial Paste:= xlpasteall,Range(Cells(“B”& i))。paste,Range(“B”& i)。粘贴,如上所述。
我完全失去了。该计划中的其他所有工作都很好。我只是无法将我复制的值粘贴到所需的单元格中(所有列都偏移了一定数量的列,但是在同一行中)。帮助和解释都赞赏。
编辑感谢我收到的答案,我能够解决我的问题。在我看的任何地方,我真的找不到一个好的答案。谢谢!
我使用的解决方案是最简单的解决方案之一:
rng.Offset(0, 1) = rng.Text
再次感谢回答的海报以及评论的海报。我太难了。
答案 0 :(得分: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
简单粘贴方法
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
尝试从上面三个中确定您想要的并相应地进行修改。 ;)
希望这有帮助。
答案 1 :(得分:4)
说明:
Cells.Offset(0,1).PasteSpecial
这会给Error 1004
Cells
,因为Cells(hotcell).Copy
指的是整个工作表范围,并且您无法抵消它。
Error 5
如果hotcell
的值不是数字,则会显示Cells
我认为如果你使用上面的语法,Cells(1,1) 'refers to Range("A1")
Cells(1,2) 'refers to Range("B1")
Cells(2,1) 'refers to Range("A2")
只接受数字参数。
如何使用单元格(Excel 2007及更高版本)
1.定义R,C语法:Cells(RowNumber,ColumnNumber)
Cells(1) 'refers to Range("A1")
Cells(2) 'refers to RAnge("B1") and so on
Cells(16385) 'refers to Range("A2")
2.仅使用数字
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")
3.仅使用细胞
Cells(1, "A").Copy 'obviously copies A1
Cells(1, "A").Resize(2).Copy 'copies A1:A2
4.使用数字和字母(这仅适用于 Cells(RowNum,ColNum)语法)
Cells.Resize(5,1).Copy Cells.Resize(5,1).Offset(0,1)
现在,如何复制和粘贴。
假设您要复制A1:A5并粘贴到下一列B。
Resize
上述方法有效,因为在Cells
之前Offset
{{1}} {{1}}。{
A1:A5的值现在将被复制到B1:B5
希望这会对你有所帮助。