Nhờ giúp đỡ sắp xếp lại vùng dữ liệu (2 người xem)

Liên hệ QC

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

kientung

Thành viên chính thức
Tham gia
16/5/20
Bài viết
91
Được thích
10
Em chào anh, chị trong diễn đàn.

Em có hai vùng dữ liệu ( "E2:AJ21"),("AL22:BQ41") .

Vùng dữ liệu ( "E2:AJ21") thì em có thể viết Code nối chuỗi lại thành 1 cột ( Cột A ) .

Còn vùng dữ liệu ("AL22:BQ41") thì muốn sắp nối tiếp liên tiếp nhau ở 2 cột B và C .

Số dữ liệu ít nhất trong 1 cột là 5 và lớn nhất thì không xác định trước.

Mong được anh, chị giúp đỡ.

Em cảm ơn mọi người


1645451421967.png
 

File đính kèm

Em chào anh, chị trong diễn đàn.

Em có hai vùng dữ liệu ( "E2:AJ21"),("AL22:BQ41") .

Vùng dữ liệu ( "E2:AJ21") thì em có thể viết Code nối chuỗi lại thành 1 cột ( Cột A ) .

Còn vùng dữ liệu ("AL22:BQ41") thì muốn sắp nối tiếp liên tiếp nhau ở 2 cột B và C .

Số dữ liệu ít nhất trong 1 cột là 5 và lớn nhất thì không xác định trước.

Mong được anh, chị giúp đỡ.

Em cảm ơn mọi người


View attachment 272355
Vậy cột B và C trong file là kết quả mong muốn của bạn à.
 
Upvote 0
Em chào anh, chị trong diễn đàn.

Em có hai vùng dữ liệu ( "E2:AJ21"),("AL22:BQ41") .

Vùng dữ liệu ( "E2:AJ21") thì em có thể viết Code nối chuỗi lại thành 1 cột ( Cột A ) .

Còn vùng dữ liệu ("AL22:BQ41") thì muốn sắp nối tiếp liên tiếp nhau ở 2 cột B và C .

Số dữ liệu ít nhất trong 1 cột là 5 và lớn nhất thì không xác định trước.

Mong được anh, chị giúp đỡ.

Em cảm ơn mọi người


View attachment 272355
Thử code này
Mã:
Sub xyz()
    Dim i&, iRow&, k, j, iR, cot
    With Sheet1
        For j = 38 To 69
            For Each cot In Array("2", "3")
                iR = .Cells(Rows.Count, j).End(3).Row
                For i = 22 To iR
                    k = k + 1
                    .Cells(k + 1, Val(cot)).Value = .Cells(i, j).Value
                Next
            Next
        Next
    End With
End Sub
 
Upvote 0
Thử code này
Mã:
Sub xyz()
    Dim i&, iRow&, k, j, iR, cot
    With Sheet1
        For j = 38 To 69
            For Each cot In Array("2", "3")
                iR = .Cells(Rows.Count, j).End(3).Row
                For i = 22 To iR
                    k = k + 1
                    .Cells(k + 1, Val(cot)).Value = .Cells(i, j).Value
                Next
            Next
        Next
    End With
End Sub
Hình như code của bạn có khuyến mại gấp đôi. (Chắc mừng tuổi năm mới hả).
 
Upvote 0
Dạ đúng rồi. Cột B và C là kết quả mong muốn của em anh ạ.
Xin lỗi do không kiểm tra kết quả. Chỉnh lại code
Mã:
Sub xyz()
    Dim i&, iR&, k, j,  cot, T
    With Sheet1
        j = 37
        Do Until j > 69
            j = j + 1
            iR = .Cells(Rows.Count, j).End(3).Row
            If j Mod 2 = 0 Then cot = 2
            If j Mod 2 = 1 Then cot = 3
            For i = 22 To iR
                k = k + 1
                .Cells(k + 1, cot).Value = .Cells(i, j).Value
            Next
        Loop
    End With
End Sub
Bài đã được tự động gộp:

Hình như code của bạn có khuyến mại gấp đôi. (Chắc mừng tuổi năm mới hả).
Em nhầm. Không kiểm tra lại. Hì .
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom