Vòng lặp trong VBA

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

Sói1102

Thành viên mới
Tham gia
19/12/18
Bài viết
9
Được thích
1
Chào mọi người!!!
Mình có dữ liệu này mong mọi người viết code giúp ạ.
Mong muốn:Khi chạy code sẽ copy dữ liệu từng dòng ở cột A sang cột E cho đến khi hết 1 RACK ở cột B thì sẽ nhảy sang cột tiếp theo.Screenshot_20230519_155620_Microsoft 365 (Office).jpg
 

File đính kèm

  • Book1.xlsm
    17 KB · Đọc: 20
Lần chỉnh sửa cuối:
Dạ vậy nó nằm ngoài tầm với của em ạ.
Thấy bác Hoàng Tuấn lấp ló sao không nhảy vô?
 
Upvote 0
Upvote 0
Phai này mà Advanced filter hoặc Pivot table là tôi chịu thua
Xin lỗ, Pivot thì tôi nhầm.
Advanced Filter thì quý vị đánh giá thấp khả năng làm việc thủ công của tôi rồi.

Tuy nhiên, nhìn kỹ lại thì bài này có 365 làm có lẽ ngon (tuy rằng sắp cột như thớt thì VBA làm cho khỏe, khỏi mất công nghĩ công thức khủng). Rấy tiếc máy hiện tại đang dùng 2016. Để khuya, xem TV xong, vào phòng việc dùng cái máy kia có 365.

Chú: sắp dữ liệu kiểu như thớt thì tách ra làm gì không biết. Đầu ra đọc còn rối hơn đầu vào.
 
Upvote 0
Advanced Filter thì quý vị đánh giá thấp khả năng làm việc thủ công của tôi rồi.
Advanced filter và Excel 365, với khả năng của tôi thì 4 cột phải 4 lần.
Công thức 365:
=FILTER($A$1:$A$22,$B$1:$B$22=INDEX(UNIQUE(Sheet1!$B$1:$B$22),COLUMN(A1)))
Copy sang ngang

1684504969830.png
Mọi cố gắng để làm 1 lần 4 cột đều đã thất bại. Có lẽ phải cố gắng thêm.
 
Upvote 0
Mấy trứ danh đều chê hết rồi; Chủ bài đăng xem tạm vậy nha, trong khi chờ con khác xịn hơn:

PHP:
Sub TachTheoTriKeBen()
 Dim Arr(), Temp As String
 Dim Rws As Long, J As Long, Dg As Long, Cot As Integer, Col As Integer
 
 Rws = [B2].CurrentRegion.Rows.Count
 Arr() = [A1].Resize(Rws, 2).Value
 ReDim aKQ(1 To Rws, 1 To Rws) As String
 [F1].Resize(Rws, Rws).Value = aKQ()
 For J = 1 To UBound(Arr())
    If Arr(J, 2) <> Temp Then
        Dg = Dg + 1:                Col = Col + 1
        aKQ(Dg, Col) = Arr(J, 1):   Temp = Arr(J, 2)
        aKQ(Dg, Col + 1) = Arr(J, 2)
    Else
        Dg = Dg + 1:                aKQ(Dg, Col) = Arr(J, 1)
    End If
 Next J
 [F1].Resize(Dg, Col + 1).Value = aKQ()
End Sub
 
Upvote 0
Mấy trứ danh đều chê hết rồi; Chủ bài đăng xem tạm vậy nha, trong khi chờ con khác xịn hơn:
1. Kết quả chạy:
1684506793252.png

Té ra phai "Phai đây.xlsx" ở bài 3 không giống phai yêu cầu bài 1

2. Nếu chẳng may dữ liệu chưa sort theo cột B?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom