粘贴特殊的语法错误

时间:2013-06-17 22:06:05

标签: vba excel-vba syntax paste excel

Cells(R, DataCol).Resize(, ColumnCount).Copy Cells(R, DataCol) _ 
.Offset(RowOffset * (R -  StartRow), ColOffset).PasteSpecial xlValues

有谁能告诉我为什么上面的语句是语法错误,以及如何让语句允许我使用paste special或paste值?

3 个答案:

答案 0 :(得分:2)

无需仅为值复制/粘贴 - 您可以直接分配:

With ActiveSheet.Cells(R, DataCol)
   .Offset(RowOffset * (R -  StartRow), ColOffset).Resize(,ColumnCount).Value= _
                        .Resize(, ColumnCount).Value
End With

答案 1 :(得分:0)

Copy方法只有一个(可选)参数:Destination。这是您要复制的Range

PasteSpecial是一种单独的方法。您可以使用Copy然后使用单独的语句来执行PasteSpecial。

你正在混淆这两种方法。您要么立即复制到目标,要么复制然后复制PasteSpecial,需要两个单独的语句。例如:

Cells(R, DataCol).Resize(, ColumnCount).Copy
Cells(R, DataCol).Offset(RowOffset * (R -  StartRow), ColOffset).PasteSpecial xlValues

答案 2 :(得分:0)

简而言之,有一些语法可用,但你把它们混合起来。因此,最常用的语法如下:

'A)- all in one line
Range().Copy Range()   'range to copy >> destination range

'B)- instructions are in separate lines
Range().Copy           'range to copy
Range().PasteSpecial xlValues   'destination range

'C)- instructions are in separate lines
Range().Copy           'range to copy
Sheets().Paste          'destination sheet, activecell/default cell in destination sheet