Tách dữ liệu trong excel với VBA

Liên hệ QC

letrieuvt

Thành viên mới
Tham gia
5/5/11
Bài viết
11
Được thích
0
Các bạn lập trình VBA trong GPE hộ mình đoạn code này được không.. Mình mới tìm hiểu VBA nên chưa thể hiểu để viết được. Giờ mình có các hàng với các cột số lượng bên cạnh, làm thế nào để tách đủ dữ liệu trong các hàng với đúng số lượng bên cột số lượng??!$@!!(Hơi khó hiểu, mình đưa file kèm theo...)
 

File đính kèm

Các bạn lập trình VBA trong GPE hộ mình đoạn code này được không.. Mình mới tìm hiểu VBA nên chưa thể hiểu để viết được. Giờ mình có các hàng với các cột số lượng bên cạnh, làm thế nào để tách đủ dữ liệu trong các hàng với đúng số lượng bên cột số lượng??!$@!!(Hơi khó hiểu, mình đưa file kèm theo...)
Có nhiều cách và đây là một cách dùng phép gán
Mã:
Public Sub NgoNgo()
    Dim Vung, I
    Set Vung = [f4:f7]
    [a12:f10000].ClearContents
        For I = 1 To Vung.Rows.Count
            [c1000].End(xlUp)(2).Offset(, -2).Resize(Vung(I), 5).Value = Vung(I).Offset(, -5).Resize(, 5).Value
            Range([c12], [c1000].End(xlUp)).Offset(, 3).Value = 1
        Next
End Sub
Nếu dữ liệu lớn ta có thể dùng mảng để xử lý nó
Bấm Ctrl + Shift + E để chạy code
Thân
 

File đính kèm

Upvote 0
[c1000].End(xlUp)(2).Offset(, -2).Resize(Vung(I), 5).Value = Vung(I).Offset(, -5).Resize(, 5).Value
[/CODE]
Cho em hỏi cái này với anh Concogia cái em tô màu xanh có phải là viết gắn gọn của Offset(1) không anh nếu vậy sao mình không viết như vậy cho nó ngắn [c1000].End(xlUp).Offset(1, -2)
 
Upvote 0
Mã:
        [c1000].End(xlUp)[B][COLOR=blue](2)[/COLOR][/B].Offset(, -2).Resize(Vung(I), 5).Value = Vung(I).Offset(, -5).Resize(, 5).Value
Cho em hỏi cái này với anh Concogia cái em tô màu xanh có phải là viết gắn gọn của Offset(1) không anh nếu vậy sao mình không viết như vậy cho nó ngắn [c1000].End(xlUp).Offset(1, -2)
Cái này
[c1000].End(xlUp)(2).Offset(, -2)

Tương đương với
[c1000].End(xlUp).Offset(1, -2)
Lập trình viên dù giòi đến đâu thì đôi lúc cũng có những chổ hơi "ngớ ngẩn"... chuyện thường
Bạn phát hiện ra những "chổ" như vậy, chứng tỏ bạn có quan tâm và không "rập khuôn". Đáng chúc mừng

 
Lần chỉnh sửa cuối:
Upvote 0
[c1000].End(xlUp)(2).Offset(, -2).Resize(Vung(I), 5).Value = Vung(I).Offset(, -5).Resize(, 5).Value
[/CODE]
Cho em hỏi cái này với anh Concogia cái em tô màu xanh có phải là viết gắn gọn của Offset(1) không anh nếu vậy sao mình không viết như vậy cho nó ngắn [c1000].End(xlUp).Offset(1, -2)
Hihi, bạn nói trúng phóc, ban đầu mình khai báo cột A, nhưng nhìn lại thấy thiếu một dòng nên phải chuyển sang cột C mà không để ý cái "zụ" đó. Híc
Chúc bạn tiến bộ thật nhanh trên con đường chinh phục VBA
Thân
 
Upvote 0
Web KT

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

Back
Top Bottom