VBA范围粘贴: 在Sheet1中动态统计了行数,存在变量i里;然后把Range(B1)的数据复制到Sheet2中

想要达到的效果是在Sheet2中,从C3开始,把Sheet1页中Range(B1)的数据往下复制i行;然后紧接着把Sheet1页中Range(C1)的数据往下复制i行;用For循环可能比较慢,能不能先选中要粘贴的区域,然后一次性粘贴;

第1个回答  2013-12-16
Sub test()
Dim i As Long
i = Sheet1.Range("B65536").End(xlUp).Row
Sheet1.Range("B1:B" & i).Copy Sheet2.Range("C3")
Sheet1.Range("C1:C" & i).Copy Sheet2.Range("C3").Offset(i, 0)
End Sub

第2个回答  2013-12-16
可以,但是在sheet2对对应大小的range写入
Sub TEST()
Dim i As Integer, MyData As Variant
i = 4
MyData = Sheet1.Range("B1:B" & i)
Sheet2.Range("C1:C" & i) = MyData
End Sub

或者
Sheet2.Range("C1:C" & i).Value = Sheet1.Range("B1:B" & i).Value

或者
Sheet1.Range("B1:B" & i).Copy Destination:=Sheet2.Range("C1:C" & i) ’把格式也复制过来本回答被提问者采纳
相似回答