Em chào anh chị!
Em tham gia diễn đàn đã lâu, và cũng chỉ dừng lại ở hỏi đáp những vấn đề gặp phải (từ chèn ảnh bằng hàm của thầy Ndu, tổng hợp công nhờ anh SA_DQ, anh Bate rồi bạn Befaint giúp đỡ cùng rất nhiều thành viên khác...
Hôm nay em viết bài này lên mong được học hỏi cái cốt lõi để em có thể tự viết cho mình, cụ thể với code làm việc với mảng em thấy nó thật kỳ diệu. Qua chủ đề này em hy vọng bản thân mình cũng như nhiều người có thể hiểu thêm nhiều điều về mảng
Bài viết sẽ dựa trên code thực tiễn, và qua nó để hiểu cách làm việc code là như thế nào. File đính kèm em lấy từ một thành viên trên diễn đàn mình mà không nhớ tên, xin được lượng thứ
Mong mọi người giải đáp giúp em hiểu code trên.
Em tham gia diễn đàn đã lâu, và cũng chỉ dừng lại ở hỏi đáp những vấn đề gặp phải (từ chèn ảnh bằng hàm của thầy Ndu, tổng hợp công nhờ anh SA_DQ, anh Bate rồi bạn Befaint giúp đỡ cùng rất nhiều thành viên khác...
Hôm nay em viết bài này lên mong được học hỏi cái cốt lõi để em có thể tự viết cho mình, cụ thể với code làm việc với mảng em thấy nó thật kỳ diệu. Qua chủ đề này em hy vọng bản thân mình cũng như nhiều người có thể hiểu thêm nhiều điều về mảng
Bài viết sẽ dựa trên code thực tiễn, và qua nó để hiểu cách làm việc code là như thế nào. File đính kèm em lấy từ một thành viên trên diễn đàn mình mà không nhớ tên, xin được lượng thứ

Option Explicit
Public Sub GPE()
Dim Dic As Object, Ws As Worksheet, sArr(), dArr(1 To 100, 1 To 4)
Dim I As Long, J As Long, K As Long, Rws As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
For Each Ws In Worksheets
If Ws.Name <> "Data" Then
sArr = Ws.Range("A4", Ws.Range("A4").End(xlDown)).Resize(, 5).Value
For I = 1 To UBound(sArr)
Tem = sArr(I, 1) & "#" & sArr(I, 2) & "#" & sArr(I, 5)
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
dArr(K, 1) = sArr(I, 1)
dArr(K, 2) = sArr(I, 2)
dArr(K, 4) = sArr(I, 5)
End If
Rws = Dic.Item(Tem)
dArr(Rws, 3) = dArr(Rws, 3) + sArr(I, 4)
Next I
End If
Next Ws
With Sheets("Data")
.Range("C5:F100").ClearContents
.Range("C5:F5").Resize(K) = dArr
.Range("A5:F5").Resize(K).Borders.LineStyle = 1
End With
Set Dic = Nothing
End Sub
Mong mọi người giải đáp giúp em hiểu code trên.
Lần chỉnh sửa cuối: