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