MACRO với hàm HLOOKUP (1 người xem)

Liên hệ QC

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

nguyen6571gpex

Thành viên thường trực
Tham gia
22/4/11
Bài viết
279
Được thích
80
Nghề nghiệp
Dạy học
Chào ACE!
Tôi có một file trong đó có Sheet chứa dữ liệu muốn dò tìm dữ liẹu đó sang Sheet mới có cấu trúc khác. Vì không biết VBA nên dùng HLOOKUP từng cell sẽ rất lâu. Mong ACE giúp đỡ! Cảm ơn
 

File đính kèm

Chào ACE!
Tôi có một file trong đó có Sheet chứa dữ liệu muốn dò tìm dữ liẹu đó sang Sheet mới có cấu trúc khác. Vì không biết VBA nên dùng HLOOKUP từng cell sẽ rất lâu. Mong ACE giúp đỡ! Cảm ơn
Dữ liệu của bạn khá khoa học, nên việc dùng hàm là ổn rồi! Bạn xem file này nhé!!. Chọn tên lớp theo list trong sheet Tong hop.
 

File đính kèm

Upvote 0
Chào ACE!
Tôi có một file trong đó có Sheet chứa dữ liệu muốn dò tìm dữ liẹu đó sang Sheet mới có cấu trúc khác. Vì không biết VBA nên dùng HLOOKUP từng cell sẽ rất lâu. Mong ACE giúp đỡ! Cảm ơn

Muốn VBA thì có VBA đây. Không được xóa cột nhá
 

File đính kèm

Upvote 0
Quá lợi hại! Nhưng bạn giải thích dùm mình đoạn này được không: Dim Lop(), i, j, C, R, RR. các chữ này có ý nghĩa gì và cho i = 1 to 5 để làm gì? mình chưa hiểu kịp mong bạn giải thích giúp
Đó là các biến do mình tự tạo ra, muốn tạo gì cũng được, không bắt buộc.
Đúng ra thì phải khai báo đàng hoàng là i as byte, j as long.... gì gì đó, nhưng mình lười lắm
Khi nào bạn hiểu hết mấy cái biến đó thì cũng lợi ít mà hại nhiều vậy đó
 
Upvote 0
Đó là các biến do mình tự tạo ra, muốn tạo gì cũng được, không bắt buộc.
Đúng ra thì phải khai báo đàng hoàng là i as byte, j as long.... gì gì đó, nhưng mình lười lắm
Khi nào bạn hiểu hết mấy cái biến đó thì cũng lợi ít mà hại nhiều vậy đó
Theo a Hải thì code ngắn đi trông thấy, tốc độ cũng rầm rầm luôn..
 
Upvote 0
Chào cả nhà, Chào bạn quanghai1969
Bạn giúp mình file TKB có VBA rất tuyệt vời rồi (Bài #3), nay quay lại nhờ bạn hoặc các bạn trên diễn đàn chút nữa:
Khi mình chạy Buttom để tách TKB ra nhưng định dạng boder của TKB chưa được thẩm mĩ. Mình đã vào vùng H1:M12 để định dạng bản mẫu nhưng không được mà cứ đi sửa thủ công từng lớp thấy lâu. Mong các bạn sửa dùm code để được cả phần định dạng boder. Cảm ơn!
 
Upvote 0
Bạn quanghai1969 và các thành viên giúp tôi với!!!!!!!!!!!!!
 
Upvote 0
chào bạn vu_tuan_manh_linh bạn có thể chỉ cho mình cách tạo tên lớp theo list được không ạ!
cảm ơn bạn nhiều!!!
 
Upvote 0
Chào cả nhà, Chào bạn quanghai1969
Bạn giúp mình file TKB có VBA rất tuyệt vời rồi (Bài #3), nay quay lại nhờ bạn hoặc các bạn trên diễn đàn chút nữa:
Khi mình chạy Buttom để tách TKB ra nhưng định dạng boder của TKB chưa được thẩm mĩ. Mình đã vào vùng H1:M12 để định dạng bản mẫu nhưng không được mà cứ đi sửa thủ công từng lớp thấy lâu. Mong các bạn sửa dùm code để được cả phần định dạng boder. Cảm ơn!
Code sửa lại thế này, thì bạn sẽ có thể định dạng mẫu tại H1:M12
PHP:
Sub TachTKB()
Application.ScreenUpdating = False
Dim Lop(), i, j, C, R, RR
With Sheet1
    Lop = .Range(.[C3], .[V3]).Value
    For j = 1 To UBound(Lop, 2)
        Sheet2.[J3] = Lop(1, j)
        C = 9: R = 5
        For i = 1 To 5
            .Cells(R, j + 2).Resize(8).Copy
            Sheet2.Cells(5, C).PasteSpecial 3
            R = R + 8: C = C + 1
        Next
        Sheet2.[H1:M12].Copy Sheet2.Cells(RR + 1, 1)
        RR = RR + 14
    Next
End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Chào ACE trên DD_GPE!
Được mọi người giúp đỡ file chạy rất tốt và hiệu quả (#3). Song do đơn vị thường xuyên thay đổi con người, nên bình quân mỗi tháng phải xếp lại 1 lần TKB (8 tháng 7 lần) nên mong ACE giúp thêm một phần nữa (nội dung trong File ở sheet Tung_GV chuyen). Trân trọng cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Vì "mù" VBA nên không xử lí được mong các bạn giúp tôi với. Trân trọng cảm ơn!
 
Upvote 0
Cảm ơn bạn giangleloi đã quan tâm. Sheet gốc (sheet so7 luôn không thay đổi số cột, số dòng) GV tiểu học có thể dạy nhiều môn và có thể thay đổi môn mỗi khi xếp lại. Mình cần lọc theo tên GV (Toàn, Anh, Cương,...,A,B,C trong vùng W3 đến AK3 của sheet so7) chuyển về sheet Tung_GV chuyen mỗi người một TKB xem ở từng buổi, từng tiết học họ dạy tại lớp nào. Cái căn cứ để tìm là tên họ được kèm theo sau dấu gạch ngang của môn dạy (còn môn dạy có thể thay đổi hoặc một GV dạy nhiều môn. VD Toàn dạy: M.Thuật1-Toàn, M.Thuật 3-Toàn, T.Công3-Toàn, M.Thuật4-Toàn). Chỉ cần lọc những GV có tên trong vùng W3 đến AK3 thôi. Lưu ý các tên này có thể thay đổi. Mong bạn giúp nhé. Cảm ơn nhiều!
Nghĩa là: Lọc xem những GV có tên trong vùng W3:AK3 (Sheet so7) trong tuần có tiết dạy tại lớp nào? Còn những môn học không có tên GV đi kèm sau dấu gạch ngang là của GV chủ nhiệm lớp thì không cần lọc.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn giangleloi đã quan tâm. Sheet gốc (sheet so7 luôn không thay đổi số cột, số dòng) GV tiểu học có thể dạy nhiều môn và có thể thay đổi môn mỗi khi xếp lại. Mình cần lọc theo tên GV (Toàn, Anh, Cương,...,A,B,C trong vùng W3 đến AK3 của sheet so7) chuyển về sheet Tung_GV chuyen mỗi người một TKB xem ở từng buổi, từng tiết học dạy tại lớp nào. Cái căn cứ để tìm là tên họ được kèm theo sau dấu gạch ngang của môn dạy (còn môn dạy có thể thay đổi hoặc một GV dạy nhiều môn. VD Toàn dạy: M.Thuật1-Toàn, M.Thuật 3-Toàn, T.Công3-Toàn, M.Thuật4-Toàn). Chỉ cần lọc những GV có tên trong vùng W3 đến AK3 thôi. Lưu ý các tên này có thể thay đổi. Mong bạn giúp nhé. Cảm ơn nhiều!

Hông phải giangleloi làm được hông?
 

File đính kèm

Upvote 0
Rất tuyệt! Cảm ơn bạn Ba Tê rất rất rất nhiều nhé!
Nếu bạn thêm giúp vào nut Button cái lệnh xóa (Như ở sheet Tung_lop) thì càng tuyệt vời hơn.
Một lần nữa trân trọng cảm ơn Ba Tê, cảm ơn tất cả các bạn!
 
Upvote 0
Rất tuyệt! Cảm ơn bạn Ba Tê rất rất rất nhiều nhé!
Nếu bạn thêm giúp vào nut Button cái lệnh xóa (Như ở sheet Tung_lop) thì càng tuyệt vời hơn.
Một lần nữa trân trọng cảm ơn Ba Tê, cảm ơn tất cả các bạn!
Tên GV ở bảng xếp & ở vùng [AN3:BB4] phải hoàn toàn giống nhau, hông thôi đừng nói Ba Tê chứ Bốn, Năm Tê tìm cũng hông ra đâu ( trong bài là GV Trang dạy nhạc)
Híc
 
Upvote 0
Tên GV ở bảng xếp & ở vùng [AN3:BB4] phải hoàn toàn giống nhau, hông thôi đừng nói Ba Tê chứ Bốn, Năm Tê tìm cũng hông ra đâu ( trong bài là GV Trang dạy nhạc)
Híc
Theo tôi hiểu tên trong J1:J15 (sheet Tung_GVchuyen) mới là cái gốc để dò tìm thì nhất thiết phải thống nhất với tên trong bảng xếp có đúng không bạn?
 
Upvote 0
Theo tôi hiểu tên trong J1:J15 (sheet Tung_GVchuyen) mới là cái gốc để dò tìm thì nhất thiết phải thống nhất với tên trong bảng xếp có đúng không bạn?
Chính xác, lấy ở đâu cũng được, nhưng phải giống nhau
Trong bài, chắc Ba Tê copy ở sheet "so7" vùng [AN3:BB4] qua đó
Bạn sửa Gv Trang cho giống như bảng xếp hoặc ngược lại
 
Upvote 0
Theo tôi hiểu tên trong J1:J15 (sheet Tung_GVchuyen) mới là cái gốc để dò tìm thì nhất thiết phải thống nhất với tên trong bảng xếp có đúng không bạn?

- Đúng là chỉ tìm những tên sau dấu gạch (-) mà có y chang trong cột J (Kể cả chữ Hoa, Thường), không có tía tui "mò" cũng hổng "ga".
- Thêm cái Xóa để làm gì nhỉ? Mỗi lần bấm nút đã xóa cũ, làm mới rồi mà.
 

File đính kèm

Upvote 0
- Đúng là chỉ tìm những tên sau dấu gạch (-) mà có y chang trong cột J (Kể cả chữ Hoa, Thường), không có tía tui "mò" cũng hổng "ga".
- Thêm cái Xóa để làm gì nhỉ? Mỗi lần bấm nút đã xóa cũ, làm mới rồi mà.
Chào các ACE diễn đàn!
COVID-19 hoành hành thành ra lại nhờ các ACE chút: Do phát sinh thời gian học vào ngày thứ bảy nên Code chạy không đúng nữa mong các bạn giúp đỡ. Trân trọng cám ơn! (Những vấn đề cần nhờ giúp mình đã ghi cụ thể trong từng Sheet: Tung_lop; Tung_GV chuyen)
 

File đính kèm

Upvote 0
Nhờ các ACE giúp mình với! Trân trọng!
 
Upvote 0
Chào các ACE diễn đàn!
COVID-19 hoành hành thành ra lại nhờ các ACE chút: Do phát sinh thời gian học vào ngày thứ bảy nên Code chạy không đúng nữa mong các bạn giúp đỡ. Trân trọng cám ơn! (Những vấn đề cần nhờ giúp mình đã ghi cụ thể trong từng Sheet: Tung_lop; Tung_GV chuyen)
Mình không biết VBA nên không thể sửa được (mặc dù đã cố gắng sửa những vùng có thay đổi nhưng mấy cái biến thì chịu) mong các ACE giúp sửa hộ. Trân trọng cảm ơn!
 
Upvote 0
Hình như code trong bài này có "dính liếu" tới tôi.
Trân trọng cảm ơn thầy! Chúc thầy luôn mạnh khỏe!
Không phải "hình như" mà code trong bài này là của Thầy trước kia thầy đã giúp, chính vì vậy em mới trực tiếp gửi nhờ thầy trong mục "tọa đàm" mà. Một lần nữa trân trọng cảm ơn Thầy, cảm ơn diễn đàn!
 
Upvote 0
Upvote 0
Hình như code trong bài này có "dính liếu" tới tôi.
Chào bạn, chào tất cả các bạn!
Nhờ các bạn giúp đỡ, mình sử dụng file này mấy năm rất hiệu quả. Hiện tại do mình xếp TKB bằng phần mềm nên dữ liệu gốc (sheet FET) có thay đổi một chút, từ đó có code chạy ra kết quả chưa thật chuẩn. Nhờ các bạn giúp:
1. Sửa code chạy kết quả ra sheet "Tung_GV chuyen"
2. Viết giúp code lấy kết quả từ sheet gốc "FET" vào sheet "NopPGD" như dữ liệu mẫu mình đã làm.
Chi teeits mình đã ghi trong file đính kèm. Trân trọng!
 

File đính kèm

Upvote 0
Chào bạn, chào tất cả các bạn!
Nhờ các bạn giúp đỡ, mình sử dụng file này mấy năm rất hiệu quả. Hiện tại do mình xếp TKB bằng phần mềm nên dữ liệu gốc (sheet FET) có thay đổi một chút, từ đó có code chạy ra kết quả chưa thật chuẩn. Nhờ các bạn giúp:
1. Sửa code chạy kết quả ra sheet "Tung_GV chuyen"
2. Viết giúp code lấy kết quả từ sheet gốc "FET" vào sheet "NopPGD" như dữ liệu mẫu mình đã làm.
Chi teeits mình đã ghi trong file đính kèm. Trân trọng!
Mình có sửa lại code vị trí bôi đỏ, do không nắm tinh thần từ bài viết ngày xưa, nên sửa tạm, không chắc về kết quả, bạn chạy code, kiểm tra giúp nhé.

Rich (BB code):
Option Explicit

Sub TachTKB()
Application.ScreenUpdating = False
Dim Lop(), i As Long, j As Long, C As Long, R As Long, RR As Long
With Sheets("FET")
    Lop = .Range(.[C3], .[V3]).Value
    For j = 1 To UBound(Lop, 2)
        Sheet2.[K3] = Lop(1, j)
        C = 10: R = 5
        For i = 1 To 6
            .Cells(R, j + 2).Resize(8).Copy
            Sheet2.Cells(5, C).PasteSpecial 3
            R = R + 8: C = C + 1
        Next
        Sheet2.[I1:O12].Copy Sheet2.Cells(RR + 1, 1)
        RR = RR + 14
    Next
End With
Application.ScreenUpdating = True
End Sub

Public Sub GPE()
Dim TenGV As String, sArr(), dArr(), tArr(), rng As Range, IRws As Long
Dim i As Long, j As Long, N As Long, iCll As Long, Col As Long, Rws As Long
Application.ScreenUpdating = False
Rws = 1
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("Tung_GV chuyen")
    Set rng = .Range("K1:Q12")
    tArr = .Range(.[J1], .[J1000].End(xlUp).Offset(1)).Value
    For N = 1 To UBound(tArr, 1)
        ReDim dArr(1 To 8, 1 To 6)
        TenGV = tArr(N, 1)
        Col = 0
        For i = 3 To 43 Step 8
            Col = Col + 1
            For IRws = 0 To 7
                For j = 1 To UBound(sArr, 2)
                    If sArr(i + IRws, j) Like "*-" & TenGV Then
                        dArr(IRws + 1, Col) = sArr(1, j) & "-" & Left(sArr(i + IRws, j), InStr(sArr(i + IRws, j), "-") - 1)
                    End If
                Next j
            Next IRws
        Next i
            .[M3] = TenGV
            .[L5].Resize(8, 6) = dArr
            rng.Copy .Range("A" & Rws)
            Rws = Rws + 14
    Next N
End With
End Sub
 

File đính kèm

Upvote 0
Mình có sửa lại code vị trí bôi đỏ, do không nắm tinh thần từ bài viết ngày xưa, nên sửa tạm, không chắc về kết quả, bạn chạy code, kiểm tra giúp nhé.

Rich (BB code):
Option Explicit

Sub TachTKB()
Application.ScreenUpdating = False
Dim Lop(), i As Long, j As Long, C As Long, R As Long, RR As Long
With Sheets("FET")
    Lop = .Range(.[C3], .[V3]).Value
    For j = 1 To UBound(Lop, 2)
        Sheet2.[K3] = Lop(1, j)
        C = 10: R = 5
        For i = 1 To 6
            .Cells(R, j + 2).Resize(8).Copy
            Sheet2.Cells(5, C).PasteSpecial 3
            R = R + 8: C = C + 1
        Next
        Sheet2.[I1:O12].Copy Sheet2.Cells(RR + 1, 1)
        RR = RR + 14
    Next
End With
Application.ScreenUpdating = True
End Sub

Public Sub GPE()
Dim TenGV As String, sArr(), dArr(), tArr(), rng As Range, IRws As Long
Dim i As Long, j As Long, N As Long, iCll As Long, Col As Long, Rws As Long
Application.ScreenUpdating = False
Rws = 1
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("Tung_GV chuyen")
    Set rng = .Range("K1:Q12")
    tArr = .Range(.[J1], .[J1000].End(xlUp).Offset(1)).Value
    For N = 1 To UBound(tArr, 1)
        ReDim dArr(1 To 8, 1 To 6)
        TenGV = tArr(N, 1)
        Col = 0
        For i = 3 To 43 Step 8
            Col = Col + 1
            For IRws = 0 To 7
                For j = 1 To UBound(sArr, 2)
                    If sArr(i + IRws, j) Like "*-" & TenGV Then
                        dArr(IRws + 1, Col) = sArr(1, j) & "-" & Left(sArr(i + IRws, j), InStr(sArr(i + IRws, j), "-") - 1)
                    End If
                Next j
            Next IRws
        Next i
            .[M3] = TenGV
            .[L5].Resize(8, 6) = dArr
            rng.Copy .Range("A" & Rws)
            Rws = Rws + 14
    Next N
End With
End Sub
Cảm ơn bạn đã quan tâm, giúp đỡ. Vấn đề 1 đã được giải quyết, nhờ các bạn giúp tiếp vấn đề 2 (viết code cho sheet "NopPGD"). Trân trọng!
 
Upvote 0
Cảm ơn bạn đã quan tâm, giúp đỡ. Vấn đề 1 đã được giải quyết, nhờ các bạn giúp tiếp vấn đề 2 (viết code cho sheet "NopPGD"). Trân trọng!
Bạn chạy Sub GPE_NopPGD()

PHP:
Public Sub GPE_NopPGD()
Dim sArr()
Dim i As Long, j As Long, k As Long
Application.ScreenUpdating = False
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("NopPGD")
    For i = 1 To UBound(sArr, 2)
        For j = i * 2 To (UBound(sArr, 2) + 5) * 2
            If sArr(1, i) = .Cells(3, j) Then
                'Debug.Print .Cells(3, j)
                For k = 3 To UBound(sArr)
                   .Cells(k + 2, j).Resize(1, 2) = Split(sArr(k, i), "-")
                Next k
            End If
        Next j
    Next i
End With
End Sub
 

File đính kèm

Upvote 0
Bạn chạy Sub GPE_NopPGD()

PHP:
Public Sub GPE_NopPGD()
Dim sArr()
Dim i As Long, j As Long, k As Long
Application.ScreenUpdating = False
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("NopPGD")
    For i = 1 To UBound(sArr, 2)
        For j = i * 2 To (UBound(sArr, 2) + 5) * 2
            If sArr(1, i) = .Cells(3, j) Then
                'Debug.Print .Cells(3, j)
                For k = 3 To UBound(sArr)
                   .Cells(k + 2, j).Resize(1, 2) = Split(sArr(k, i), "-")
                Next k
            End If
        Next j
    Next i
End With
End Sub
Cảm ơn bạn rất nhiều, chúc bạn sức khỏe, hạnh phúc, thành công!
 
Upvote 0
Bạn chạy Sub GPE_NopPGD()

PHP:
Public Sub GPE_NopPGD()
Dim sArr()
Dim i As Long, j As Long, k As Long
Application.ScreenUpdating = False
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("NopPGD")
    For i = 1 To UBound(sArr, 2)
        For j = i * 2 To (UBound(sArr, 2) + 5) * 2
            If sArr(1, i) = .Cells(3, j) Then
                'Debug.Print .Cells(3, j)
                For k = 3 To UBound(sArr)
                   .Cells(k + 2, j).Resize(1, 2) = Split(sArr(k, i), "-")
                Next k
            End If
        Next j
    Next i
End With
End Sub
Bạn bổ sung thêm giúp vào code: Xóa dữ liệu cũ trong vùng được điền (ở sheet NopPGD nếu có) trước khi thực thi lệnh. Cảm ơn bạn!
 
Upvote 0
Bạn bổ sung thêm giúp vào code: Xóa dữ liệu cũ trong vùng được điền (ở sheet NopPGD nếu có) trước khi thực thi lệnh. Cảm ơn bạn!
Mình bổ sung đoạn xóa dữ liệu cũ.
Code hơi chuối tý, hi vọng chạy đúng.
PHP:
Public Sub GPE_NopPGD()
Dim sArr()
Dim i As Long, j As Long, k As Long, l As Long
Application.ScreenUpdating = False
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("NopPGD")
    For l = 3 To 50 Step 10
        .Cells(5, l).Resize(48, 8).ClearContents
    Next l
   
    For i = 1 To UBound(sArr, 2)
        For j = i * 2 To (UBound(sArr, 2) + 5) * 2
            If sArr(1, i) = .Cells(3, j) Then
                'Debug.Print .Cells(3, j)
                For k = 3 To UBound(sArr)
                   .Cells(k + 2, j).Resize(1, 2) = Split(sArr(k, i), "-")
                Next k
            End If
        Next j
    Next i
End With
End Sub
 

File đính kèm

Upvote 0
Mình bổ sung đoạn xóa dữ liệu cũ.
Code hơi chuối tý, hi vọng chạy đúng.
PHP:
Public Sub GPE_NopPGD()
Dim sArr()
Dim i As Long, j As Long, k As Long, l As Long
Application.ScreenUpdating = False
With Sheets("FET")
    sArr = .Range("C3:V52").Value
End With
With Sheets("NopPGD")
    For l = 3 To 50 Step 10
        .Cells(5, l).Resize(48, 8).ClearContents
    Next l
  
    For i = 1 To UBound(sArr, 2)
        For j = i * 2 To (UBound(sArr, 2) + 5) * 2
            If sArr(1, i) = .Cells(3, j) Then
                'Debug.Print .Cells(3, j)
                For k = 3 To UBound(sArr)
                   .Cells(k + 2, j).Resize(1, 2) = Split(sArr(k, i), "-")
                Next k
            End If
        Next j
    Next i
End With
End Sub
Cảm ơn bạn nhiều! Xin lỗi vì sau khi nhờ, sáng nay mình có chút việc nên giờ mới mở diễn đàn ra xem!
 
Upvote 0
Thêm 1 code khác tham khảo sub NopPGD
Mã:
Sub ABC()
    Dim a(), b(), i&, d As Object, j&
    Set d = CreateObject("scripting.dictionary")
    a = Sheets("FET").Range("C3:V52").Value
    b = Sheets("NopPGD").Range("A3:AX52").Value
    For j = 3 To 50 Step 10
        Sheets("NopPGD").Cells(5, j).Resize(48, 8).ClearContents
    Next
    For j = 1 To UBound(a, 2)
        If a(1, j) <> Empty Then
            d(a(1, j)) = j
        End If
    Next
    For j = 1 To UBound(b, 2)
        If d.exists(b(1, j)) = True Then
            For i = 3 To UBound(b)
                If UBound(Split(a(i, d.Item(b(1, j))), "-")) > 0 Then
                    b(i, j) = Split(a(i, d.Item(b(1, j))), "-")(0)
                    b(i, j + 1) = Split(a(i, d.Item(b(1, j))), "-")(1)
                End If
            Next
        End If
    Next
    Sheets("NopPGD").Range("A3").Resize(UBound(b), UBound(b, 2)).Value = b
End Sub
 
Upvote 0
Chào các bạn!
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom