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

Liên hệ QC

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

  • Sắp xếp lại dữ liệu.xlsm
    27.4 KB · Đọc: 3
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