Vba 特殊粘贴的语法错误
有人能告诉我为什么上面的语句是语法错误,以及如何让语句允许我使用paste special或paste value吗?复制方法只有一个(可选)参数:Destination。这是您要复制到的Vba 特殊粘贴的语法错误,vba,excel,syntax,paste,Vba,Excel,Syntax,Paste,有人能告诉我为什么上面的语句是语法错误,以及如何让语句允许我使用paste special或paste value吗?复制方法只有一个(可选)参数:Destination。这是您要复制到的范围 PasteSpecial是一种单独的方法。您可以使用Copy,然后使用单独的语句来执行粘贴 你把这两种方法混为一谈了。您要么要立即复制到目标,要么要复制然后粘贴,需要两个单独的语句。例如: Cells(R, DataCol).Resize(, ColumnCount).Copy Cells(R, Data
范围
PasteSpecial
是一种单独的方法。您可以使用Copy
,然后使用单独的语句来执行粘贴
你把这两种方法混为一谈了。您要么要立即复制到目标,要么要复制然后粘贴,需要两个单独的语句。例如:
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
无需仅复制/粘贴值-您可以直接分配:
'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
反应很好,效果很好,很有教育意义。还有一个问题一直困扰着我。为什么复制多个单元格块时,例如A1:D1范围,应用工作表函数“按值更改”,目标为范围-我将获得四次更改的值,但是在更改的列中包含偏移量时,excel仅识别粘贴操作的第一列(本例中为A1)我不明白你的意思。如果我复制并粘贴一个区域,它只会触发一个更改事件。也许您应该启动一个新线程并提供一些代码。OK就可以了。实际上我是倒着写的。当我像上面的例子那样对一个单元格块使用偏移量时,当我使用块中的最后一个单元格作为目标时,excel无法识别更改。但是,当我使用单元格的第一个块时,Excel会给我4个val的change by val,target as range not recognized@andrew gibson
With ActiveSheet.Cells(R, DataCol)
.Offset(RowOffset * (R - StartRow), ColOffset).Resize(,ColumnCount).Value= _
.Resize(, ColumnCount).Value
End With