[Hỏi] - VBA Vòng Lặp Do Until - Copy vùng dữ liệu nhiều dòng như thế nào

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

0981858549

Thành viên mới
Tham gia
16/12/19
Bài viết
11
Được thích
1
Untitled.jpg
Mọi người giành chút thời gian giúp mình với ạ!
Mình có một vùng dữ liệu như trên: vùng C5:G17
- Mình muốn copy vùng dữ liệu trên xuống phía dưới với điều kiện MỖI LẦN CHỈ COPY 4 DÒNG
- Lặp lại cho đến khi nào bảng trên hết dữ liệu
Cụ thể minh muốn copy vùng C6:G17 xuống ô C22, sau đó copy tiếp vùng C10:G13, copy tiếp vùng C14:G17... cho đến hết dữ liệu bảng

Mình hỏi thế để mình có thể copy những trường hợp tương tự qua 1 sheet khác, hoặc những nơi khác. Khi mà nơi đó chỉ cho nhập mỗi lần một số dòng giới hạn, như VD trên chỉ được nhập 4 dòng chẳng hạn.
Cảm ơn mọi người nhiều
 
Lần chỉnh sửa cuối:
Bạn thử chiêm nghiệm cái For . . . Next trước khi Do . . . Loop

PHP:
Sub CopyNhom4()
 Dim Rws As Long, J As Long, Col As Integer, NN As Integer
 Const CPy As Byte = 4
 Dim fRg As Range
 
 Rws = [C5].End(xlDown).Row
 Col = [C5].CurrentRegion.Columns.Count
 Set fRg = Cells(Rws + 4, "C")
 For J = 5 To Rws Step CPy
    Cells(J, "C").Resize(CPy, Col).Copy Destination:=fRg.Offset(NN + 4)
    NN = NN + CPy
 Next J
 MsgBox "Xong Rôi!"
End Sub
 
...
Mình hỏi thế để mình có thể copy những trường hợp tương tự qua 1 sheet khác, hoặc những nơi khác. Khi mà nơi đó chỉ cho nhập mỗi lần một số dòng giới hạn, như VD trên chỉ được nhập 4 dòng chẳng hạn.
Cảm ơn mọi người nhiều
Quên đi. Không giản dị như bạn nghĩ đâu.
 
Bạn thử chiêm nghiệm cái For . . . Next trước khi Do . . . Loop

PHP:
Sub CopyNhom4()
 Dim Rws As Long, J As Long, Col As Integer, NN As Integer
 Const CPy As Byte = 4
 Dim fRg As Range
 
 Rws = [C5].End(xlDown).Row
 Col = [C5].CurrentRegion.Columns.Count
 Set fRg = Cells(Rws + 4, "C")
 For J = 5 To Rws Step CPy
    Cells(J, "C").Resize(CPy, Col).Copy Destination:=fRg.Offset(NN + 4)
    NN = NN + CPy
 Next J
 MsgBox "Xong Rôi!"
End Sub
Cảm ơn bác nhiều, cũng là một cách hữu ích :)
 
Tôi tin là thớt chỉ nói vậy thôi chứ thực tế thì chưa biết cách tổng quat hóa code để áp dụng cho mình.
ờ thật đấy. đưa code vào chạy chưa được như ý lắm
Bài đã được tự động gộp:

Đúng hay không đúng phải nói rõ chứ nói như thế kia thì ai hiểu thế nào?
mình đưa vào chạy nếu như dữ liệu chỉ có 1 dòng thì nó bị nhảy lên. mình làm code dưới này thấy cũng được. tại mình tự làm nên mình hiểu hơn :p
Cái này là mình coppy qua Notepad

Sub copy_paste()

Windows("Tong_Hop_BOT.xlsm").Activate
Sheets("sheet3").Select
x = 6
Do Until Sheets("sheet3").Cells(x, 4) = ""

Range("c" & x & ":" & "g" & x).Select
Selection.Copy

ap = "notepad"
AppActivate ap, True
SendKeys "%EP"

Windows("Tong_Hop_BOT.xlsm").Activate
Sheets("sheet3").Select

x = x + 1
Loop

End Sub
 
Web KT
Back
Top Bottom