[CHIA SẺ] Tìm kiếm và nhập liệu nâng cao - mã nguồn mở (1 người xem)

Liên hệ QC

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

langtuchungtinh360

Thành viên đã dừng hoạt động
Tham gia
7/10/13
Bài viết
1,062
Được thích
334
đi thẳng vào vấn đề luôn.
Chắc mọi người cũng không lạ lẫm gì với 2 Addins trích lọc và nhập liệu nâng cao tại 2 bài của 2 thành viên VIP của diễn đàn này
Nguyễn Duy Tuân, huuthang_bd (nhấn vào để đi đến bài viết)
---------------------
mình có tham khảo và cũng thấy được sự thuận tiện trong việc thao tác nhập liệu và trích lọc trong bảng tính
do cả 2 bài trên đều được mã hóa hết nên việc xem và tham khảo code là việc không thể hoặc khó khăn.
nay mình cũng bon chen viết 1 vài code với ý tưởng tương tự như thế.
hiện đã vừa hoàn thành, và mình test cũng thấy được nên mạn phép chia sẻ lên cho anh chị em cùng tham khảo nếu có ý định phát triển thêm có thể tích hợp vào chương trình của mình mà không phải cài nhiều Addins (file chia sẽ sẽ show code hết để mọi người có thể xem và tham khảo thuật toán)
trong quá trình test đứng ở phương diện là người viết nên mình không thể lường hết được các trường hợp phát sinh lỗi vẫn chưa thử hết các trường hợp.
nếu mọi người có tải và sử dụng thì nếu phát hiện lỗi nào, có thể bình luận về lỗi đó giúp mình để mình có thể chỉnh lại.
--------------------
tính năng:
+ dò tìm và nhập liệu nhanh, đối với dữ liệu lớn thì do viết bằng VBA nên có thể việc thể hiện tốc độ "bàn thờ" là không thể.
+ nếu cài đặt nhiều vùng nhập liệu thì khi chọn đúng vùng đó thì sẽ lọc ra dữ liệu tương ứng
+ có thể chèn cột, chèn dòng, xóa cột, xóa dòng ở cả bên bảng dữ liệu và bảng nhập liệu, chương trình sẽ tự động điều chỉnh phù hợp, trường hợp xóa luôn cả 1 vùng dữ liệu hoặc vùng nhập liệu thì tương ứng vùng đó sẽ không hoạt động nữa.
+ việc tìm kiếm không phân biệt chữ hoa, chữ thường
+ có thể tìm kiếm liên tục dữ liệu
+ có thể sắp xếp bảng dữ liệu theo alphabet sau khi lọc xong tạo thuận tiện cho việc xem.
+ nếu trong vùng nhập liệu có cả công thức ở giữa các cột nhập liệu thì khi nhập vào cũng không mất công thức
hạn chế:
+ Vì là lập trình VBA và phải sử lý nhiều lần để ra được kết quả tốt nhấn nên nếu dữ liệu nhiều sẽ xử lý chậm
--------------------
Link download 13h00
23/02/2017 (*)
--------------------
Chỉnh sửa lỗi và bổ xung so với File ban đầu (*)
+ chỉnh sửa lại các lỗi và bố trí lại bố cục + Chỉnh sửa Code Load và Lọc dữ liệu (bỏ chức năng Sort - do không biết cách tính giá trị)
+ bổ xung các hướng dẫn để dễ sử dụng, sửa lại code lọc dữ liệu không chính xác
+ sửa một số lỗi không chạy được code lọc dữ liệu ở bản cũ (khi làm việc với sheet này mà chuyển qua sheet khác thì code vẫn chạy nhưng không lọc được)
+ bổ xung thêm chức năng sort dữ liệu
+ bổ xung thêm các lọc duy nhất (lấy giá trị cuối hay giá trị đầu tiên)
+ sửa lại cách di chuyển list (bản cũ là chọn list chỗ nào cũng kéo được-> chỉ chọn dòng tiêu đề mới kéo đi được)
+ chỉnh sửa lại cách lọc duy nhất.
+ thêm tính năng dò tìm theo ngày tháng (list không hiển thị được dạng dd/mm/yyyy)
+ List hiển thị đúng như vùng data hiển thị trên trang tính (có thể hiển thị và điền vào đúng định dạng ngày tháng)
+ Sửa lại lỗi sắp xếp nhiều lần bị sai (nếu bảng dữ liệu có dữ liệu là chữ hay số trộn lẫn nhau)
Link download 10h30 04/03/2016

---------------------
Do mình cũng là "tay mơ" nên rất mong nhận được sự đóng góp và phản hồi từ mọi người
---------------------
ps: xin cảm ơn các thành viên đã giúp đỡ mình trong quá trình viết và test lỗi
winvista
kieumanh
ndu98061630
........
---------------------
Tham khảo một số code và ý tưởng
siwtom
ndu98061630
huuthang_bd
Nguyễn Duy Tuân
---------------------
 
Lần chỉnh sửa cuối:
Trả lời ngắn: đúng

Trả lời dài dòng:
Vùng nhớ được chia ra làm 2 phần, vùng nhớ đống chung (heap) và vùng nhớ ngăn xếp (stack)
Khi bước vào sub/function, tất cả những biến khai báo bên trong sub/function đều thuộc về ngăn xếp. Tất cả những tham ByVal được cóp py lại và có thể coi như là biến nội của sub/function và cũng nằm trong ngăn xếp. Biến static là trường hợp ngoại lệ, chúng thuộc về vùng nhớ đống chung, giống như biến toàn cục.
Khi hết sub/function (end/exit sub/function) tất cả những gì trong ngăn xếp liên quan đến sub/function này đều bị huỷ (kể cả những copy của tham ByVal). Biến static không thuộc về ngăn xếp nên khong bị huỷ, tức là nó vẫn giữ giá trị đó cho lần gọi sub/function kế tiếp.
Ở trên tôi có nói biến static và biến toàn cục đều nằm trong vùng nhớ chung, thế thì static khác biến toàn cục ở chỗ nào? Biến toàn cục là biến chung, tất cả sub/function đều thấy chúng. Biến static là biến nội của sub/function, các sub/function khác không thấy chúng. Từ "thấy" có thể hiểu là tương đương với "sử dụng, gán và truy cập được"

Lưu ý: thuộc tính static của class module thì lại khác nữa. Nhưng khá rắc rối để nói ở đây
 
Lần chỉnh sửa cuối:
Upvote 0
Từ chôi đưa code lên là sao bác. Toạn bộ code đều trong file mà. Làm gì có thư viện riêng đâu.

Chính tôi muốn bàn về cách tách thành thư viện riêng nên mới đề nghị tách code ra khỏi file dữ liệu. Và bạn từ chối thì thôi. Từ chối là quyền tự do của mỗi cá nhân. Đâu có ai bắt bẻ gì mà phải biện hộ.
 
Upvote 0
bạn chụp lại màn hình khi nhấn ON/CÀI ĐẶT cho mình xem
Untitled.jpg

Mình thấy đặt vị trí vẫn chưa tốt, vì mình thay đổi giá trị mà có lúc form không thay đổi vị trí. Test giữa các bảng, cột để đánh nhập liệu thì bảng nhập liệu hiện lúc bên này lúc bên khác.
 
Lần chỉnh sửa cuối:
Upvote 0
Bị lỗi: Khi click đúp vào một ô sheets("DATA") thì bị báo lỗi Run -time error '1004'. Bạn thử kiểm tra lại chắc là không bẫy lỗi
 
Upvote 0
Mình rất thích cách nghĩ của bạn :v 1k liked

Em cảm ơn thầy đã quan tâm ạ.
Như bài #1 e có ghi là có tham khảo của thầy cơ mà (tham khảo đc chức năng với giao diện)
Còn code thì nhờ file của huuthang_bd mà e mới biết được vụ class sự kiện đó.
Của thầy thì ngôn ngữ lập trình khác tốc độ hơn là đúng rồi. Em thì nhấn 1 cái nó làm từa lưa công tác hết thì làm sao nhanh được.
1 sản phẩm chỉ 2-3 tuần làm thì làm sao sánh được với sản phẩm 1 năm được chiứ thầy. Việc chia sẻ này có thể xem là "trá hình" thôi thầy ạ ^^. Biết đâu được nhiều cao thủ khác chỉ con đường khác đi để nâng tầm lên thì sao.
Đơn giản đưa lên để cùng học hỏi. Để những ai "tay mơ" như e về lập trình và đang tìm hiểu thì có thể lôi về làm của riêng và phát triển hơn trong công việc.
 
Upvote 0
Mình thấy đặt vị trí vẫn chưa tốt, vì mình thay đổi giá trị mà có lúc form không thay đổi vị trí. Test giữa các bảng, cột để đánh nhập liệu thì bảng nhập liệu hiện lúc bên này lúc bên khác.
đúng là đặt vị trí không tốt thật. tính cho người dùng thích đặt ở đâu thì đặt. nhưng nghĩ lại chắc thôi, không cho nữa, để mặc định luôn.
Bị lỗi: Khi click đúp vào một ô sheets("DATA") thì bị báo lỗi Run -time error '1004'. Bạn thử kiểm tra lại chắc là không bẫy lỗi
cảm ơn bạn , đúng là chưa thử các kiểu. đã chỉnh lại ở file bài #1
 
Upvote 0
Export ba mớ modules ra thành những file bas rồi đưa lên đây.
Phần mềm mã nguồn mở phải có khả năng gói gọn, tách rời được ra khỏi cái CSDL.
không
biết là có đúng ý của bác không, ngồi nguyên đêm qua xem cái vụ biến static gì đấy thì chỉ sửa được mỗi cái biến private ArrData0 as variant vào trong function à
còn mấy biến khác thì em chịu, chả nghĩ ra được cách.
hi vọng được bác chỉ thêm để biết nhiều cách giải thuật và tổ chức code tốt hơn, chứ cỡ em thì chỉ tổ chức được như thế. file này là còn dễ tìm với chỉnh sửa, còn file phục vụ cho công việc là 1 mớ bòng bong luôn. lỡ tay nhấn vô xóa toàn bộ chú thích, thế là 1 lèo chú thích trong file bay hết trơn. @@
còn đây là code trong file đó đây ạ.
 
Upvote 0
Chuyện biến (variables) là tôi trả lời cho các câu #37 và #40. Nó thuộc về bậc trung (bạn thấy khó à vì bạn học đốt giai đoạn, thiếu phần căn bản)

Chuyện chỉnh code để tạo cấu trúc lô gic và dễ phát triển là chuyện khác, không liên quan. Cái này thuộc về bậc cao. Nên để dịp khác vì nó không thể thực hiện trên code hiện tại của bạn.
 
Upvote 0
không
biết là có đúng ý của bác không, ngồi nguyên đêm qua xem cái vụ biến static gì đấy thì chỉ sửa được mỗi cái biến private ArrData0 as variant vào trong function à
còn mấy biến khác thì em chịu, chả nghĩ ra được cách.
hi vọng được bác chỉ thêm để biết nhiều cách giải thuật và tổ chức code tốt hơn, chứ cỡ em thì chỉ tổ chức được như thế. file này là còn dễ tìm với chỉnh sửa, còn file phục vụ cho công việc là 1 mớ bòng bong luôn. lỡ tay nhấn vô xóa toàn bộ chú thích, thế là 1 lèo chú thích trong file bay hết trơn. @@
còn đây là code trong file đó đây ạ.

Muốn hiểu bản chất vấn đề như bạn muốn thì:

+ đọc lại sách cơ bản về lập trình: biến, hằng và tầm vực hoạt động của nó
+ đừng đao to búa lớn vấn đề quá (với các chương trình tiện tích bé xíu này thì chiếm dụng bộ nhớ chẳng là cái đinh gì cả --> hãy chú trọng vào thuật toán)
+ về cấu trúc chương trình thì phụ thuộc nhiều vào cách tổ chức chủ quan, quan điểm của người viết. Còn muốn phát triển hãy thử sức với cái lớn cái to đi sẽ thấy mắc thấy cần bổ túc thêm gì, còn mấy cái nho nhỏ kiểu ở diễn đàn (bài giúp) thì bàn cho vui không hiệu quả nhiều.
 
Upvote 0
Tôi thấy topic của bạn là "Mã nguồn mở" mục đích là để được góp ý, sửa lỗi, thậm chí nâng cấp tính năng,... Qua mấy ngày rồi mình chưa thấy ai đóng góp trực tiếp vào code, nhưng mọi người và bản thân chủ topic lại đi hỏi lại từ vấn đề về khai báo biến - Căn bản đầu tiên của lập trình. Những câu hỏi kiểu "tranh thủ", kết hợp này làm chệch nội dung chính của chủ đề của topic.

Mình khuyên những bạn còn trẻ, nếu muốn học tốt lập trình VBA nên ít nhất tìm đọc sách, điều kiện hơn chút là tham gia học, đừng mò mẫm hết năm này qua năm khác vì tốn kém về thời gian mà trình đồ vẫn abc, thiếu căn cơ để phát triển sau này.
(Mình góp ý thẳng thắn chứ không liên quan đến việc học và dạy của mình nhé!)
 
Upvote 0
Tôi thấy topic của bạn là "Mã nguồn mở" mục đích là để được góp ý, sửa lỗi, thậm chí nâng cấp tính năng,... Qua mấy ngày rồi mình chưa thấy ai đóng góp trực tiếp vào code, nhưng mọi người và bản thân chủ topic lại đi hỏi lại từ vấn đề về khai báo biến - Căn bản đầu tiên của lập trình. Những câu hỏi kiểu "tranh thủ", kết hợp này làm chệch nội dung chính của chủ đề của topic.

Mình khuyên những bạn còn trẻ, nếu muốn học tốt lập trình VBA nên ít nhất tìm đọc sách, điều kiện hơn chút là tham gia học, đừng mò mẫm hết năm này qua năm khác vì tốn kém về thời gian mà trình đồ vẫn abc, thiếu căn cơ để phát triển sau này.
(Mình góp ý thẳng thắn chứ không liên quan đến việc học và dạy của mình nhé!)
Vâng!
em cảm ơn nhưng góp ý của thầy, đúng thật là em chưa rành về VBA hay lập trình, và em cũng chưa qua trường lớp nào về mấy món này cả, nên việc em không biết là điều dĩ nhiên thưa thầy.
mục đích đưa lên chủ yếu như thầy có nói. vì em không biết nhiều nên cần phải học hỏi thêm. và những bạn khác nếu có xem thì cũng có thể tham khảo thêm, em không có nói code em viết là tuyệt nhất, nhanh nhất. đúng là không được nhiều người quan tâm góp ý nhiều về việc giải thuật để tăng tốc hơn. nhưng cũng nhờ đó mà được bác VetMini chỉ thêm vụ biến static ngoài lề mà trước đây em không biết.
 
Upvote 0
Ồ Anh langtuchungtinh360 cũng vào hội "Thành viên sao chép" rồi sao. |||||
 
Upvote 0
Tôi thấy topic của bạn là "Mã nguồn mở" mục đích là để được góp ý, sửa lỗi, thậm chí nâng cấp tính năng,... Qua mấy ngày rồi mình chưa thấy ai đóng góp trực tiếp vào code, nhưng mọi người và bản thân chủ topic lại đi hỏi lại từ vấn đề về khai báo biến - Căn bản đầu tiên của lập trình. Những câu hỏi kiểu "tranh thủ", kết hợp này làm chệch nội dung chính của chủ đề của topic.

Mình khuyên những bạn còn trẻ, nếu muốn học tốt lập trình VBA nên ít nhất tìm đọc sách, điều kiện hơn chút là tham gia học, đừng mò mẫm hết năm này qua năm khác vì tốn kém về thời gian mà trình đồ vẫn abc, thiếu căn cơ để phát triển sau này.
(Mình góp ý thẳng thắn chứ không liên quan đến việc học và dạy của mình nhé!)

Mình đồng ý với ý kiến của Tuân (like bạn một cái). Tuy nhiên hồi đó mình học VBA cũng chẳng có căn bản gì, biết viết dăm ba cái code trước khi biết BIẾN là cái gì (chứ đừng nói là KHAI BÁO)
Vậy nên mình cũng ủng hộ quan điểm ĐAM MÊ VÀ DẠI KHỜ (như bạn langtuchungtinh360). Thích cái gì làm liền cái đó, thiếu kìến thức nào bổ sung kiến thức đó. Có đam mê rồi cũng sẽ có ngày ta lấp đầy được khoảng trống kiến thức mình thiếu
Không ngại nói thật: trước giờ mình chưa từng đọc một quyển sách nào về VBA (kể cả sách của diễn đàn). Kiến thức mình có được hoàn toàn là hỏi trực tiếp trên GPE hoặc các trang nước ngoài
Đường nào rồi cũng sẽ đến đích. Làm được thứ gì hữu ích phục vụ cho công việc, cho bản thân(dù nhỏ) là xem như thành công!
-----------------------------
Ý kiến cá nhân chứ không phải muốn truyền bá tư tưởng học "rừng" nên mong rằng sẽ không có những vụ tranh cãi đáng tiếc
 
Upvote 0
Mình đồng ý với ý kiến của Tuân (like bạn một cái). Tuy nhiên hồi đó mình học VBA cũng chẳng có căn bản gì, biết viết dăm ba cái code trước khi biết BIẾN là cái gì (chứ đừng nói là KHAI BÁO)
Vậy nên mình cũng ủng hộ quan điểm ĐAM MÊ VÀ DẠI KHỜ (như bạn langtuchungtinh360). Thích cái gì làm liền cái đó, thiếu kìến thức nào bổ sung kiến thức đó. Có đam mê rồi cũng sẽ có ngày ta lấp đầy được khoảng trống kiến thức mình thiếu
Không ngại nói thật: trước giờ mình chưa từng đọc một quyển sách nào về VBA (kể cả sách của diễn đàn). Kiến thức mình có được hoàn toàn là hỏi trực tiếp trên GPE hoặc các trang nước ngoài
Đường nào rồi cũng sẽ đến đích. Làm được thứ gì hữu ích phục vụ cho công việc, cho bản thân(dù nhỏ) là xem như thành công!
-----------------------------
Ý kiến cá nhân chứ không phải muốn truyền bá tư tưởng học "rừng" nên mong rằng sẽ không có những vụ tranh cãi đáng tiếc

Vâng. Em cũng like anh một cái vì một thời đam mê và dại khờ thành cao thủ :). Tuy nhiên ít người được như anh đấy nha... Thôi thì tùy điều kiện mỗi người vậy.
 
Upvote 0
Đa số học rừng là các người nổi ở GPE này, nhưng không đọc sách offline mà sách online thì cũng là cách học... Thực tế chứng minh là học trực tiếp VBA từ các lớp đa số là không thành công, thành công giúp người trên các forum thì lại càng hiếm (nếu không muốn nói là không có). Nghe có vẻ vô lý nhưng thực tế đang diễn ra ở đời thực.
 
Upvote 0
Mình đồng ý với ý kiến của Tuân (like bạn một cái). Tuy nhiên hồi đó mình học VBA cũng chẳng có căn bản gì, biết viết dăm ba cái code trước khi biết BIẾN là cái gì (chứ đừng nói là KHAI BÁO)
Vậy nên mình cũng ủng hộ quan điểm ĐAM MÊ VÀ DẠI KHỜ (như bạn langtuchungtinh360). Thích cái gì làm liền cái đó, thiếu kìến thức nào bổ sung kiến thức đó. Có đam mê rồi cũng sẽ có ngày ta lấp đầy được khoảng trống kiến thức mình thiếu
Không ngại nói thật: trước giờ mình chưa từng đọc một quyển sách nào về VBA (kể cả sách của diễn đàn). Kiến thức mình có được hoàn toàn là hỏi trực tiếp trên GPE hoặc các trang nước ngoài
Đường nào rồi cũng sẽ đến đích. Làm được thứ gì hữu ích phục vụ cho công việc, cho bản thân(dù nhỏ) là xem như thành công!
-----------------------------
Ý kiến cá nhân chứ không phải muốn truyền bá tư tưởng học "rừng" nên mong rằng sẽ không có những vụ tranh cãi đáng tiếc

Bạn so sánh không đúng lắm.
Tuy cùng là loại thích chỗ nào nhào vào chỗ ấy, nhưng người học một cách cẩn thận chỉ hỏi 1 câu, về nghiền ngẫm cả tuần lễ, sau đó mới hỏi tiếp. Bạn về thống kê lại giai đoạn mình còn đang học, tôi đoan chắc là trung bình chỉ hỏi 1 vài câu mỗi tuần.
Ngược lại, có nhiều ngừoi lại thích kiểu học hỏi lia hỏi lịa khong kịp để thấm.

Vì vậy tôi ủng hộ theo ý kiến bạn Tuân. Chịu khó đi từ căn bản, đọc sách là tốt nhất. Diễn đàn tốt hơn nên là chỗ để giải đáp khúc mắc. Và quan trọng hơn, là chỗ để trao đổi kinh nghiệm.

Xin nói rõ là tôi chả biết mặt mũi Tuân ra sao, và chả có phần gì trong sách hoặc các khoá dạy.
 
Upvote 0
Tôi thấy topic của bạn là "Mã nguồn mở" mục đích là để được góp ý, sửa lỗi, thậm chí nâng cấp tính năng,... Qua mấy ngày rồi mình chưa thấy ai đóng góp trực tiếp vào code, nhưng mọi người và bản thân chủ topic lại đi hỏi lại từ vấn đề về khai báo biến - Căn bản đầu tiên của lập trình. Những câu hỏi kiểu "tranh thủ", kết hợp này làm chệch nội dung chính của chủ đề của topic.

Mình khuyên những bạn còn trẻ, nếu muốn học tốt lập trình VBA nên ít nhất tìm đọc sách, điều kiện hơn chút là tham gia học, đừng mò mẫm hết năm này qua năm khác vì tốn kém về thời gian mà trình đồ vẫn abc, thiếu căn cơ để phát triển sau này.
(Mình góp ý thẳng thắn chứ không liên quan đến việc học và dạy của mình nhé!)
Cũng có nhiều người muốn tham gia học, nhưng không có điều kiện để đi học. Mong anh mở thêm lớp học trực tuyến, để tạo điều kiện cho những bạn không có điều kiện như em
 
Upvote 0
Đa số học rừng là các người nổi ở GPE này, nhưng không đọc sách offline mà sách online thì cũng là cách học... Thực tế chứng minh là học trực tiếp VBA từ các lớp đa số là không thành công, thành công giúp người trên các forum thì lại càng hiếm (nếu không muốn nói là không có). Nghe có vẻ vô lý nhưng thực tế đang diễn ra ở đời thực.

Không phủ nhận nhiều người có tiếng trên GPE là từ mò mẫm, đóng góp nhiều cho trao đổi GPE. Bản thân những người tự mò mẫm rồi thành danh tôi cho là xuất chúng, rất đam mê, họ không có nhiều đâu so với số lượng thành viên vài chục ngàn người, bản thân họ cũng phải âm thầm học bù đắp lỗ hổng bằng cách này hay cách khác và chắc chắn phải dành rất nhiều thời gian. Đôi khi những gì nhìn thấy chỉ là bề nổi, có ai biết mỗi ngày người ta dành 4-8 tiếng thậm chí là hơn để cày VBA? Những người bình thường liệu có điều kiện và đam mê để làm như vậy không? Nhiều người có trình độ rất tốt nhưng lại không có điều kiện hoặc họ không thích chia sẻ trên mạng nên mình khônh thấy thôi. Nếu kết luận học trực tiếp vba từ các lớp đa số không thành công là không chính xác. Hoặc có thể không may bạn đó học phải thầy không có căn cơ hay phủi. Nếu bạn lên Youtube xem một số người dạy VBA trên đó thì sẽ thấy cùi bắp rất nhiều và cũng đc gọi là "thầy". Có rất nhiều người với sức ép của yêu cầu công việc, thời gian phải hoàn thành, họ không có 2 hay 3 năm mò mẫm đâu, họ còn không biết bắt đầu từ đâu để hỏi VBA thế nào cho đúng thì việc đến tận trung tâm học với 2 tháng là họ đã biết mình cần làm gì và hỏi gì rồi, dù họ chưa thể là cao thủ nhưng nếu họ còn điều kiện và đam mê thì những nền tảng kiến thức họ sẽ vươn xa và nhanh hơn rất nhiều với việc mò mẫm nhiều năm.
Tôi không tiện khoe những đệ tử tôi dạy VBA từ con số không hiện nay đã có sản phẩm vba nhỏ trong tay vì sẽ bị cho là quảng cáo nhưng bản thân tôi là người cũng mò mẫm, cũng đọc sách và những sản phẩm tôi làm ra, tôi biết không nhiều người có điều kiện về thời gian tự nghiên cứu như tôi, tôi khuyên nên đọc sách online hay offline đều ok hết, có điều kiện thì chọn trung tâm tốt đi học như vậy công việc của các bạn không bị ách tắc. Diễn đàn GPE với cộng động phong phú, nhiều người nhiệt tình vẫn là nới giải quyết sự vụ tốt nhất.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom