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

Liên hệ QC

Người dùng đang xem chủ đề này

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

Bài viết mới nhất

Back
Top Bottom