Các bác giúp em chuyển dữ liệu từ cột sang dạng hàng với ạ (2 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

truonghd95

Thành viên mới
Tham gia
5/6/24
Bài viết
7
Được thích
0
Em mới học vba em đang tập làm 1 bài chuyển dữ liệu từ cột sang hàng mà nghĩ mấy ngày chưa ra, em xin phép đăng lên mong mọi người giúp đỡ em với ạ,
Có 2 cột dữ liệu là z và aa, em đang cần chuyển về hàng dạng như ảnh 2 để thống kể vào bảng phần màu sáng với điều kiện là hệ và block ạ, mọi người giúp em với ạ
1718175627937.png
1718175592045.png
Bài đã được tự động gộp:

e xin phép gửi file ạ
 

File đính kèm

Lần chỉnh sửa cuối:
e mới học vba e đang tập làm 1 bài chuyển dữ liệu từ cột sang hàng mà nghĩ mấy ngày chưa ra, e xin phép đăng lên mong mọi người giúp đỡ e với ạ,
Có 2 cột dữ liệu là z và aa, e đang cần chuyển về hàng dạng như ảnh 2 để thống kể vào bảng phần màu sáng với điều kiện là hệ và block ạ, mọi người giúp e với ạ
View attachment 301639
View attachment 301638
Nghiên cứu về mảng (array) của VBA nhé bạn.Mà gửi cái ảnh lên để làm gì vậy.File với code bạn đang làm đâu.
 
Upvote 0
Có 2 cột dữ liệu là z và aa, em đang cần chuyển về hàng dạng như ảnh 2 để thống kể vào bảng phần màu sáng với điều kiện là hệ và block ạ, mọi người giúp em với ạ
Thử tham khảo code sau:
Mã:
Sub TongHop()
    Dim Dic As Object, Ws As Worksheet, Sh As Worksheet, S, Key$
    Dim j&, sCol&, i&, n&, arr(), Res(), ii&
    Set Dic = CreateObject("scripting.dictionary")
    Set Ws = Sheets("Tonghop")
    For Each Sh In Worksheets
        If Sh.Name <> Ws.Name Then
            S = Split(Sh.Name, "_")
            Key = Trim(S(0)) & "_" & Trim(S(1))
            Dic(Key) = Dic(Key) & "|" & Sh.Name
        End If
    Next
    With Ws
        For j = 5 To 20
            If .Cells(8, j).Value <> Empty Then sCol = j Else Exit For
        Next j
        .Range("E9:E19").Resize(, sCol).ClearContents
        For j = 5 To sCol
            Key = .Cells(8, j).Value & "_" & .Cells(7, j).Value
            If Dic.exists(Key) = True Then
                S = Split(Dic(Key), "|")
                ReDim Res(1 To 11, 1 To 1)
                For n = 1 To UBound(S)
                    arr = Sheets(S(n)).Range("B19:C31").Value
                    If (arr(1, 2) & "_" & arr(2, 2)) = Key Then
                        For ii = 1 To 11
                            Res(ii, 1) = Res(ii, 1) + arr(ii + 2, 2)
                        Next
                    End If
                Next
                Ws.Cells(9, j).Resize(11).Value = Res
            End If
        Next
    End With
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom