Xin giúp đỡ : Lấy dữ liệu từ các file khác nhau?

Liên hệ QC

USB1394

Thành viên hoạt động
Tham gia
20/12/08
Bài viết
173
Được thích
12
Nghề nghiệp
Lính triều đình
Em đang dùng Excel 2003 , và đang gặp phải vấn đề khó cần giúp đỡ .Em có 1 thư mục tên : CSDL chứa các file excel (*.xls) ,em muốn lọc lấy dữ liệu của các file này để xử lý trên 1 file excel mới nhưng làm không được ,em có gởi kèm file .
Một số hướng dẫn em thấy có một số cách dùng mã PHP là dùng như thế nào ? Em nhìn mà như mù đi đêm vậy , nếu có thể xin gởi hướng dẫn kèm hình ảnh
Xin cảm ơn rất nhiều --=0--=0--=0
 
Lần chỉnh sửa cuối:
Em đang dùng Excel 2003 , và đang gặp phải vấn đề khó cần giúp đỡ .Em có 1 thư mục tên : CSDL chứa các file excel (*.xls) ,em muốn lọc lấy dữ liệu của các file này để xử lý trên 1 file excel mới nhưng làm không được ,em có gởi kèm file .
Một số hướng dẫn em thấy có một số cách dùng mã PHP là dùng như thế nào ? Em nhìn mà như mù đi đêm vậy , nếu có thể xin gởi hướng dẫn kèm hình ảnh
Xin cảm ơn rất nhiều --=0--=0--=0
Bạn xem file đính kèm của mình và tùy biến cho hợp với ý tưởng của bạn nhé.
Chúc thành công!
 

File đính kèm

  • Noidung.rar
    13.6 KB · Đọc: 695
Wa!!!! tuyệt !!!! xin hỏi bạn nếu mình muốn dùng trong file khác thì làm sao ? (xin bạn nói chi tiết dùm , phải copy cái gì , sửa lại cái gì) .xin cám ơn bạn rất nhiều vì nó mà mình mất ngủ 2 ngày (vì không biết dùng hàm gì ? mình ko biết về code PHP đâu) Xin cám ơn bạn rất nhiều

Bạn Nghiaphuc ơi , mình áp dụng công thức tương tự với file khác thì không được vậy
$N$9 : ô nhập ngày dữ liệu
N10:N13 : là vùng xuất kết quả lọc từ file XLS
B2 : Là ô đầu tiên trong các file XLS cần lọc (bắt đầu từ ô này)
sau đó tạo liên kết tới file : ='E:\BFO\Excel\Noidung\[09 11 03.xls]Sheet1'!B2 (ví dụ là vậy đi)
Đổi Sheet1 là sheet tương ứng của file XLS ,nhưng do tên sheet XLS của em có dấu ("Kê tiền" ,rename từ sheet 3) ,nên em thay Sheet1=Sheet3
----vẫn không chạy được ,chương trình tô màu vàng tại dòng này : S1.Range("U8:U23").ClearContents
----Xin giúp đỡ ,cin cám ơn rất nhiều
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn Nghiaphuc ơi , mình áp dụng công thức tương tự với file khác thì không được vậy
$N$9 : ô nhập ngày dữ liệu
N10:N13 : là vùng xuất kết quả lọc từ file XLS
B2 : Là ô đầu tiên trong các file XLS cần lọc (bắt đầu từ ô này)
sau đó tạo liên kết tới file : ='E:\BFO\Excel\Noidung\[09 11 03.xls]Sheet1'!B2 (ví dụ là vậy đi)
Đổi Sheet1 là sheet tương ứng của file XLS ,nhưng do tên sheet XLS của em có dấu ("Kê tiền" ,rename từ sheet 3) ,nên em thay Sheet1=Sheet3
----vẫn không chạy được ,chương trình tô màu vàng tại dòng này : S1.Range("U8:U23").ClearContents
----Xin giúp đỡ ,cin cám ơn rất nhiều
Nếu bạn để ý thì tên Sheet ở file Noidung.xls là Sheet1 nhưng trong lệnh VBA (Visual Basic for Application, bạn thường thấy chữ Code PHP, nhưng thực chất đó là Code VBA) mà bạn nhìn thấy lại là S1.Range("N10:N13") hoặc S1.Range("N10") chứ không phải là WorkSheets("Sheet1").Range("N10:N13") hay WorkSheets("Sheet1").Range("N10"). Cũng cần nói thêm trong trường hợp này "Sheet1" là tên trong Excel (Name) còn "S1" là tên trong VBA (CodeName). Sở dĩ mình dùng CodeName mà không dùng Name bởi vì Name thì có thể sử dụng tiếng Việt (tiếng Việt Unicode không thể hiện được trong code VBA), còn CodeName thì không, dùng CodeName thì đỡ rắc rối hơn, bạn có thể đổi tên Sheet trong Excel thoải mái mà không ảnh hưởng đến code VBA.
Bạn làm theo hình này xem có được không nhé.
Còn vấn đề tên Sheet của các file dữ liệu thành phần có tên tiếng Việt có dấu:
sau đó tạo liên kết tới file : ='E:\BFO\Excel\Noidung\[09 11 03.xls]Sheet1'!B2 (ví dụ là vậy đi)
Đổi Sheet1 là sheet tương ứng của file XLS ,nhưng do tên sheet XLS của em có dấu ("Kê tiền" ,rename từ sheet 3) ,nên em thay Sheet1=Sheet3
có phải ý của bạn là ở chỗ Sheet1 phải thay bằng Kê tiền không, tức là phải thay công thức thành ='E:\BFO\Excel\Noidung\[09 11 03.xls]Kê tiền'!B2 đúng không?
Nếu đúng như vậy thì mình thấy Excel tự động biến đổi mà. Bạn thử mở 1 file nào đó (VD file 09 11 03.xls) và đổi tên Sheet1 thành Kê tiền thử xem.
 

File đính kèm

  • HD.JPG
    HD.JPG
    62.5 KB · Đọc: 394
Lần chỉnh sửa cuối:
em làm đúng như anh nhưng cũng không làm thay đổi vấn đề , em gởi kèm anh những hình ảnh miêu tả sự thay đổi ,nhờ anh xem qua có gì sai sót mong anh chỉnh lại dùm ,xin cám ơn **~****~****~****~****~**
 
Lần chỉnh sửa cuối:
- Thứ nhất: Trường hợp bị lỗi của bạn là khi bạn nhập một ngày mà không có file dữ liệu tương ứng. Ngược lại, nếu bạn nhập 1 ngày hợp lệ thì sẽ không có dòng báo lỗi này mà sẽ có dòng báo lỗi tại câu
PHP:
S1.Range("U8").Copy Destination:=S1.Range("U9:U23")
Nguyên nhân của lỗi này là do trong sheet KLT, bạn đã sử dụng Merge Cells. Thực chất ô U8 là vùng U8:Y8 còn vùng U9:U23 là vùng U9:Y23
Nếu bạn để ý thì trước khi bạn thấy dòng báo lỗi màu vàng, Excel có hộp thoại báo lỗi với nội dung là bạn không thể thay đổi nội dung của 1 ô trong vùng được Merge.
=> Hướng xử lý: Bỏ chức năng Merge Cells trong sheet KLT (mình không hiểu vì sao bạn lại dùng Merge Cells, bạn hoàn toàn có thể dùng ô đơn và thay đổi độ rộng cột, dùng Merge Cells rất rắc rối). Còn nếu bạn cứ "quyết tâm" sử dụng Merge Cells thì phải thay các câu lệnh sau (ứng với các vị trí bạn khoanh tròn trên hình):
PHP:
S1.Range("U8:Y23").ClearContents
S1.Range("U8:Y8").Formula="=Hàm của bạn"
S1.Range("U8:Y8").Copy Destination:=S1.Range("U9:Y23")
- Thứ hai: File dữ liệu của bạn có nhiều sheet (5 sheet) mà bạn lại muốn lấy dữ liệu ở sheet "khó chịu" nhất là sheet "Kê tiền", nhưng trong VBA lại không gõ được chữ này.
=> Hướng xử lý: Đổi tên sheet thành tiếng Việt không dấu ("Ke tien") và sửa lại câu lệnh thành
PHP:
S1.Range("U8:Y8").Formula = "='" & ThisWorkbook.Path & "\[" & FName & "]Ke tien'!G5"
Nếu bạn vẫn muốn tên sheet phải là "Kê tiền" thì thay bởi câu lệnh sau:
PHP:
S1.Range("U8:Y8").Formula = "='" & ThisWorkbook.Path & "\[" & FName & "]Kê ti" & ChrW(7873) & "n'!G5"
Lưu ý: Các file dữ liệu của bạn phải cùng cấu trúc như nhau.
Bạn có thể tham khảo ở file đính kèm sau (mình đã bỏ chức năng Merge Cell ở file KLT)
 

File đính kèm

  • Noidung.rar
    17.9 KB · Đọc: 193
Lần chỉnh sửa cuối:
Mình mới nảy ra ý tưởng dùng Calendar thay cho việc nhập ngày tháng, thấy cũng hay hay. Bạn thử xem file đính kèm nhé.
 

File đính kèm

  • Noidung.rar
    23.6 KB · Đọc: 155
Em lựa chọn : Tiếng việt và dùng Merge Cells (vì em dễ bố trí nội dung ,giống như anh đang viết 1 giao diện chương trình bằng . . .excel ấy mà - xin lỗi vì em ko được học lập trình VBA nên em viết thủ công bằng các hàm trong excel vậy)
Em đã làm giống anh chỉ và thành công nhưng có điều các file XLS phải cùng nằm chung thư mục với file KLT.xls , em muốn file XLS nằm trong folder : CSDL , còn folder này và file KLT.xls sẽ nằm cùng 1 thư mục .Vậy em sửa như thế nào đây

Mình mới nảy ra ý tưởng dùng Calendar thay cho việc nhập ngày tháng, thấy cũng hay hay. Bạn thử xem file đính kèm nhé.

Cách này rất hay nếu ta ứng dụng để kiểm tra bất kì này này đó thì quả là tuyệt .nhưng trong TH của em thì khác , Giá trị kê tiền từng ngày được người kê (người tạo ra file XLS ấy) tạo ra và đưa cho em cùng với tiền .Nhiệm vụ của em là nhận tiền và kê lại xem có đúng ko ,nếu sót thì ở đâu .Nhưng do muốn anh dễ hiểu em đã đơn giản hóa vấn đề lại ,mong anh thông cảm
 
Chỉnh sửa lần cuối bởi điều hành viên:
Em đã làm giống anh chỉ và thành công nhưng có điều các file XLS phải cùng nằm chung thư mục với file KLT.xls , em muốn file XLS nằm trong folder : CSDL , còn folder này và file KLT.xls sẽ nằm cùng 1 thư mục .Vậy em sửa như thế nào đây
Nếu vậy thì bạn chỉ cần tìm trong code có đoạn sau và chỉnh lại là (chú ý phần màu đỏ):
PHP:
    With FileS
        .NewSearch
        .Filename = FName
        .LookIn = ThisWorkbook.Path & "\CSDL"
        .SearchSubFolders = False
        .Execute
    End With
Em lựa chọn : Tiếng việt và dùng Merge Cells (vì em dễ bố trí nội dung ,giống như anh đang viết 1 giao diện chương trình bằng . . .excel ấy mà
Tất nhiên là mình không hề áp đặt, và mình cũng đã nêu ra cách xử lý trong tình huống này rồi, nhưng như bạn thấy, nếu dùng Merge Cells thì code sẽ dài hơn, đúng không?
xin lỗi vì em ko được học lập trình VBA nên em viết thủ công bằng các hàm trong excel vậy)
Thực ra thì mình cũng không được học qua 1 lớp VBA nào, kể cả VB cũng vậy. Mình bắt đầu với VBA bằng cách sử dụng chức năng Record Macro của Excel, sau đó xem và chỉnh lại code trong VBE, có thể sử dụng chức năng Help trong VBE cũng rất tốt. Thú thật là từ khi đăng ký thành viên GPE, mình học hỏi được rất nhiều.
 
Chỉ thêm vào & "\CSDL" cuối dòng lệnh LockIn
và sửa lại đường dẫn trên file XLS
(em có đính kèm hình) ---> cuối cùng vẫn ko được ,anh xem lại dùm!$@!!!$@!!!$@!!!$@!!

Thực ra thì mình cũng không được học qua 1 lớp VBA nào, kể cả VB cũng vậy. Mình bắt đầu với VBA bằng cách sử dụng chức năng Record Macro của Excel, sau đó xem và chỉnh lại code trong VBE, có thể sử dụng chức năng Help trong VBE cũng rất tốt. Thú thật là từ khi đăng ký thành viên GPE, mình học hỏi được rất nhiều.

chức năng Record Macro của Excel bắt đầu học sử dụng ra sao ? Ví dụ : em muốn nhập ngày vào ô A1 bằng chức năng Calender thì áp dụng như thế nào (bằng cái record macro ấy) .... thật thú vị !$@!!!$@!!!$@!!!$@!!
 
Lần chỉnh sửa cuối:
Xin lỗi, mình thiếu. Bạn cần sửa lại câu lệnh này một xíu (chú ý phần màu đỏ):
Mã:
S1.Range("U8").Formula = "='" & ThisWorkbook.Path[COLOR=red][B] & "\CSDL"[/B][/COLOR] & "\[" & FName & "]Kê ti" & ChrW(7873) & "n'!G5"
Một vấn đề nữa: Nếu ở máy tính có cài đặt ngày hệ thống dạng mặc định (M/d/yyyy) thì file KLT bị lỗi (ví dụ bạn nhập vào ngày 10/11/2009 - dạng dd/MM/yyyy). Để khắc phục lỗi này, bạn sửa câu lệnh
PHP:
FName = Right(Ngay, 2) & " " & Mid(Ngay, 4, 2) & " " & Left(Ngay, 2) & ".xls"
thành câu lệnh
PHP:
FName = Right(Year(Ngay), 2) & " " & Month(Ngay) & " " & Day(Ngay) & ".xls"
(mình đang nói đến code trong file có sử dụng Calendar, còn ở file không sử dụng Calendar thì thay Ngay bởi Target)
chức năng Record Macro của Excel bắt đầu học sử dụng ra sao ? Ví dụ : em muốn nhập ngày vào ô A1 bằng chức năng Calender thì áp dụng như thế nào (bằng cái record macro ấy) .... thật thú vị !$@!!!$@!!!$@!!!$@!!
Để sử dụng chức năng Record Macro, bạn chọn Tool\Macro\Record New Macro... => Nhập tên Macro => OK => Thực hiện thao tác gì đó theo ý bạn => Nhấn nút Stop Recording => Nhấn Alt+F11, tìm đến Macro bạn vừa ghi và xem mã lệnh tương ứng.
Còn ở ví dụ của bạn thì hơi dài dòng: Bạn cứ cho Record New Macro => OK => Chọn Insert\Object\Calendar Control 11.0 => Khi đó sẽ có một thanh công cụ mới hiện ra => Bạn nhấn nút Design Mode và nhấn nút Stop Recording. Khi đó vào trong VBE, đến Macro bạn vừa ghi sẽ có câu lệnh:
PHP:
ActiveSheet.OLEObjects.Add(ClassType:="MSCAL.Calendar", Link:=False, DisplayAsIcon:=False).Select
Bạn thêm vào câu lệnh sau nữa là OK.
PHP:
Selection.LinkedCell = "A1"
Sau đó, bạn lưu lại file, đóng và mở lại là sử dụng được Calendar.
Việc cho ẩn, hiện Calendar, bạn có thể tham khảo ở file KLT trong bài #8 của mình
 
Tại sao lại phải lấy dữ liệu từ các file khác nhau, nhỉ?

Mình cảm giác rằng, trước tiên chúng ta phải thảo luận về cấu trúc của các file đó;

Có khi sau khi thảo luận, chúng ta lại không cần đến yêu cầu này nữa không chừng!

--=0 :-= --=0 :-= --=0
 
Hay quá, tớ cũng đang cần một code như vậy bạn Nghiaphuc giúp tớ với. Tớ có 1 Folder "Don hang" gồm các đơn hàng số 001;002;003;... tớ muốn nó tự động update dữ liệu trong các đơn hàng đó vào một File theo dõi tổng hợp "Master" với các thông tin giống như trong đơn hàng.
Bạn giúp tớ với nhé, cảm ơn bạn nhiều!
 
Mình cảm giác rằng, trước tiên chúng ta phải thảo luận về cấu trúc của các file đó;

Có khi sau khi thảo luận, chúng ta lại không cần đến yêu cầu này nữa không chừng!

--=0 :-= --=0 :-= --=0
Bạn có thể nói rõ hơn một chút không? Phải chăng ý bạn là chúng ta thao tác trực tiếp trên file dữ liệu của từng ngày? Ví dụ như khi đưa mẫu để nhập dữ liệu, ta đặt sẵn 1 sheet để kiểm kê lại ở ngay trong file mẫu đó?
Tớ có 1 Folder "Don hang" gồm các đơn hàng số 001;002;003;... tớ muốn nó tự động update dữ liệu trong các đơn hàng đó vào một File theo dõi tổng hợp "Master" với các thông tin giống như trong đơn hàng.
Bạn giúp tớ với nhé, cảm ơn bạn nhiều!
Bạn cần nói rõ hơn là cấu trúc các file 001, 002,... và file Master như thế nào (số sheet, tên các sheet), tốt nhất là bạn nên gửi các file lên để mình có thể dễ hình dung hơn và sản phẩm cũng phù hợp với ý bạn hơn.
 
Lần chỉnh sửa cuối:
Bạn có thể nói rõ hơn một chút không? Phải chăng ý bạn là chúng ta thao tác trực tiếp trên file dữ liệu của từng ngày? Ví dụ như khi đưa mẫu để nhập dữ liệu, ta đặt sẵn 1 sheet để kiểm kê lại ở ngay trong file mẫu đó?



Thường trước nay mình chỉ sử dụng 1 workBook để chứa hầm bà lằng các dữ liệu phát sinh;
& chỉ 1 WorkBook nữa, nếu cần thiét, để lưu những số liếu không biến đổi trong thới gian dài;

(Đến đây là phải cụ thể, mà cụ thể e rằng không đúng nghề của bạn. Muốn tiếp ta phải xét 1 trường hợp cụ thể nào đó chung nhất - do tác giả topic đưa ra; nhưng tiếc là chưa có)
. . . .

Chúc vui!
 
Xin cám ơn anh Nghiaphuc rất nhiều , em đã áp dụng thành công rồi .trong cách anh hướng dẫn học VBA bằng marco em làm thử (VD : Cột A là số nguyên , cột B = Cột A * 2) sau đó em mở Edit code lên thì nhìn vào cũng chẳng hiểu gì hết .Cũng như trong ví dụ của em mà anh đã hướng dẫn (nhập ngày bằng calender ấy) thì bí mật cũng ở chổ làm cách nào để tìm và dùng dòng lệnh : Selection.LinkedCell = "A1"
Em từng học qua lập trình Pascal rồi nhưng ko ứng dụng được ,Anh có thể giúp em nhập môn này được ko ? Hay chỉ giúp em sách nào có thể tự học được vì em ko có nhiều thời gian .
Sẵn đây anh cho em hỏi thêm , để viết 1 chương trình quản lý kinh doanh (ở dạng giao diện hộp thoại) thì em nên đầu tư và học VBA hay Access
Vì chương trình ko lớn , mà mua thì ko đủ kinh phí , nên em chọn giải pháp : "Viết các hàm chuyên dùng rồi đóng gói chúng dưới dạng Add-in" ,Không biết anh có hứng thú với đề tài này ko !?


Thường trước nay mình chỉ sử dụng 1 workBook để chứa hầm bà lằng các dữ liệu phát sinh;
& chỉ 1 WorkBook nữa, nếu cần thiét, để lưu những số liếu không biến đổi trong thới gian dài;

(Đến đây là phải cụ thể, mà cụ thể e rằng không đúng nghề của bạn. Muốn tiếp ta phải xét 1 trường hợp cụ thể nào đó chung nhất - do tác giả topic đưa ra; nhưng tiếc là chưa có)
. . . .

Chúc vui!

Bạn Hyén7 ơi ! Bạn có thể nói rõ hơn ý tưởng của bạn ko ? Mình nghĩ bạn nói như thế là muốn chia sẽ kinh nghiệm của mình với mọi người thì đây sẽ là một cơ hội tốt cho những người như tôi vậy ! %#^#$%#^#$%#^#$

Anh Nghiaphuc ơi , có một vấn đề lại phát sinh rồi .
File KLT.xls được đặt password chỉ cho phép nhập giá trị vào ô U7 ,nhưng khi đó thì ô kết quả U8:Y23 không thể cập nhật được giá trị ,vậy mình sửa code như thế nào đây anh! (Đặt Password tránh việc công thức bị mất hoặc thay đổi) .Xin anh giúp dùm
 
Chỉnh sửa lần cuối bởi điều hành viên:
Anh Nghiaphuc ơi , có một vấn đề lại phát sinh rồi .
File KLT.xls được đặt password chỉ cho phép nhập giá trị vào ô U7 ,nhưng khi đó thì ô kết quả U8:Y23 không thể cập nhật được giá trị ,vậy mình sửa code như thế nào đây anh! (Đặt Password tránh việc công thức bị mất hoặc thay đổi) .Xin anh giúp dùm
Bạn đặt Password để khóa sheet đúng không? Nếu vậy thì bạn thêm câu lệnh
PHP:
S1.Unprotect "Password của bạn"
vào trước câu
PHP:
If FileS.FoundFiles.Count = 0 Then
và thêm câu lệnh
PHP:
S1.Protect "Password của bạn"
vào cuối Sub (sau dòng lệnh End If)
 
Bây giờ mình có thể sử dụng KLT.xls một cách thuận tiện ,xin cám ơn Anh .

Anh Nghiaphuc ơi , em áp dùng cho file khác ko làm được , File KLT.xls có vùng kết quả ở dạng cột (U8:Y23) còn trong trường hợp này File BC1.xls có vùng kết quả ở dạng hàng (F11:AR11) ,trong vùng kết quả có nhiều ô mà các ô này lại có mergi cell ko bằng nhau nữa .Xin anh giúp dùm ,xin cám ơn
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình đã làm theo yêu cầu mới của bạn tại Sheet "Báo cáo TC" tương ứng với dữ liệu tại Sheet "BC" theo hướng: mở file dữ liệu => Copy => đóng file dữ liệu. Tuy nhiên mình vẫn thấy không ưa cách gộp ô của bạn. Hẳn bạn cũng thấy trường hợp gộp ô lại thì xử lý khó chịu hơn và dữ liệu được sao chép chỉ là giá trị, nó không tự động cập nhật khi file dữ liệu nguồn thay đổi.
Mình cũng đã sửa lại cấu trúc các Sheet "Báo cáo TC" và "BC" theo hướng bỏ gộp ô (tại các Sheet tương ứng là "Báo cáo TC 1" và "BC1"), mình gộp các Sheet này vào file KLT.xls luôn, nếu bạn muốn đưa sang file khác thì chỉ cần Move or Copy sheet là xong.
Ở đây, mình vẫn còn vướng mắc 2 vấn đề: 1 là Calendar không hiển thị như ý muốn và 2 là ở ô nhập ngày tháng, nếu nhập dữ liệu không phải là Date thì Macro không chạy được. Vấn đề đó xử lý sau. Trước mắt, bạn tham khảo ở file đính kèm này đã nhé.
Chúc thành công!
 

File đính kèm

  • Noidung.rar
    33 KB · Đọc: 105
Lần chỉnh sửa cuối:
Anh Nghiaphuc ơi, anh gởi nhầm file cho em rồi , chỉ có 1 file nhập ngày bằng giao diện Calender thôi (cái này gởi rồi) ,xin gởi lại dùm em nha ,cám ơn nhiều

"...trường hợp gộp ô lại thì xử lý khó chịu hơn và dữ liệu được sao chép chỉ là giá trị, nó không tự động cập nhật khi file dữ liệu nguồn thay đổi..." !$@!!!$@!!anh có thể nói rõ hơn ý này ko ? có phải dữ liệu sao chép ngoài giá trị ra rồi còn gì nữa ko , ko tự động cập nhật khi dữ liệu nguồn thay đổi - là thay đổi gì -\\/.-\\/.

". . .
Ở đây, mình vẫn còn vướng mắc 2 vấn đề . ." !$@!!!$@!!Anh có thể nói rõ hơn ko , em chưa hiểu ý anh muốn nói gì -\\/.-\\/.

". . . Hẳn bạn cũng thấy trường hợp gộp ô lại thì xử lý khó chịu hơn . ."
Em đang có 1 ý tưởng mới giúp khắc phục điều này ,xin anh chờ trong giấy lát
 
Web KT

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

Back
Top Bottom