【发布时间】:2013-06-19 03:52:08
【问题描述】:
Cells(R, DataCol).Resize(, ColumnCount).Copy Cells(R, DataCol) _
.Offset(RowOffset * (R - StartRow), ColOffset).PasteSpecial xlValues
谁能告诉我为什么上面的语句是一个语法错误,以及我怎样才能让语句允许我使用特殊粘贴或粘贴值?
【问题讨论】:
Cells(R, DataCol).Resize(, ColumnCount).Copy Cells(R, DataCol) _
.Offset(RowOffset * (R - StartRow), ColOffset).PasteSpecial xlValues
谁能告诉我为什么上面的语句是一个语法错误,以及我怎样才能让语句允许我使用特殊粘贴或粘贴值?
【问题讨论】:
无需复制/粘贴值 - 您可以直接分配:
With ActiveSheet.Cells(R, DataCol)
.Offset(RowOffset * (R - StartRow), ColOffset).Resize(,ColumnCount).Value= _
.Resize(, ColumnCount).Value
End With
【讨论】:
Copy 方法只有一个(可选)参数:Destination。这是您要复制到的Range。
PasteSpecial 是一个单独的方法。您将使用Copy,然后使用单独的语句来执行 PasteSpecial。
您混淆了这两种方法。您要么想立即复制到目标,要么先复制然后粘贴特殊,这需要两个单独的语句。例如:
Cells(R, DataCol).Resize(, ColumnCount).Copy
Cells(R, DataCol).Offset(RowOffset * (R - StartRow), ColOffset).PasteSpecial xlValues
【讨论】:
总之,有一些可用的语法,但你把它们弄混了。因此,最流行的语法如下:
'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
【讨论】: