VBA-将可变范围从一张纸复制到另一张纸 [英] VBA - Copy variable range from one sheet to another
问题描述
我想从第二行到最后一行的C列"Inv_Headers"表中的数据复制到第四行的U列"Customers"表中的数据.
I would like to copy data from a sheet "Inv_Headers", Column C, from 2nd row until the last row to a sheet "Customers", Column U, from 4th row.
Private Sub Invoice_C()
Dim ws As Worksheet, ws1 As Worksheet
Dim lastrow As Long
Set ws = Worksheets("Inv_Headers")
Set ws2 = Worksheets("CUSTOMERS")
lastrow = ws.Cells(Rows.Count, 3).End(xlUp).Row ' last row in column C
ws.Range("C2:C" & lastrow).Copy
ws1.Range("U4").PasteSpecial xlPasteValues
ws1.Activate
End Sub
我的代码给我错误消息味精'91'-对象变量或未设置块变量.但是代码也可以在没有With语句的情况下工作,不是吗?
My code is giving me error msg '91' - Object variable or With block variable not set. But the code should work without With statement as well, shouldn't it?
请问您的建议吗?
非常感谢!
推荐答案
除了Srpic提供的产品外,我还记得没有让这部分工作: ws.Range("C2:C"& lastrow).复制
In addition to Srpic's offering, I can remember not getting this part to work:
ws.Range("C2:C" & lastrow).Copy
您可以使用 ws.Range("C2","C"& lastrow)进行修复.复制
如果您开始在Range()中键入内容,则会看到,
是可接受的分隔符,而对于不完整的范围分配,则不是:
.
If you start typing in Range() you will see that ,
is an acceptable separator, whereas :
for an incomplete range assingment is not.
Private Sub Invoice_C()
Dim ws As Worksheet, ws1 As Worksheet
Dim lastrow As Long
Set ws = Worksheets("Inv_Headers")
Set ws1 = Worksheets("CUSTOMERS")
lastrow = ws.Cells(Rows.Count, 3).End(xlUp).Row ' last row in column C
ws.Range("C2", "C" & lastrow).Copy
ws1.Range("U4").PasteSpecial xlPasteValues
ws1.Activate
结束子
这篇关于VBA-将可变范围从一张纸复制到另一张纸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!