[HỎI ĐÁP]Lọc giá trị từ 1 file sang nhiều file excel với cột có giá trị cho sẵn bằng vba

Liên hệ QC

hoasuajp

Thành viên mới
Tham gia
7/4/22
Bài viết
43
Được thích
3
Giới tính
Nữ
Em chào các anh chị trong GPE!
Em đang muốn làm 1 file macro riêng để lọc (lookup) giá trị từ file excel: filedulieu.xlsx bao gồm các cột MASP,MANSX,NSX,TENSP,KIEU,GIA,LT sang nhiều file khác có cấu trúc giống nhau với cột MASP đã cho sẵn giá trị, và các cột còn lại là lọc từ file excel kia với các cột có tên TENSP,KIEU,LT,GIA(*10%),SOLUONG(bỏ trống),NGAYXUAT(bỏ trống).
Do em chưa nắm chắc vba nên dù xem nhiều video vẫn chưa hiểu được, rất mong các anh chị trong GPE có thể hỗ trợ em trường hợp này để em có thể hiểu rõ. Chúc các anh chị sức khỏe và thành công.
Em xin gửi file đính kèm ạ.
 

File đính kèm

  • filedulieu.xlsx
    27.1 KB · Đọc: 2
  • filexuat1.xls
    31 KB · Đọc: 4
  • filexuat2.xls
    35 KB · Đọc: 3
Em chào các anh chị trong GPE!
Em đang muốn làm 1 file macro riêng để lọc (lookup) giá trị từ file excel: filedulieu.xlsx bao gồm các cột MASP,MANSX,NSX,TENSP,KIEU,GIA,LT sang nhiều file khác có cấu trúc giống nhau với cột MASP đã cho sẵn giá trị, và các cột còn lại là lọc từ file excel kia với các cột có tên TENSP,KIEU,LT,GIA(*10%),SOLUONG(bỏ trống),NGAYXUAT(bỏ trống).
Do em chưa nắm chắc vba nên dù xem nhiều video vẫn chưa hiểu được, rất mong các anh chị trong GPE có thể hỗ trợ em trường hợp này để em có thể hiểu rõ. Chúc các anh chị sức khỏe và thành công.
Em xin gửi file đính kèm ạ.
Bạn xem file. Sửa lại đường dẫn chứa các file xuất. Lưu ý: có mã TB1342J nhìn thì thấy giống nhưng không gióng nhau => không tìm thấy.
 

File đính kèm

  • filedulieu_MoFileGhiDuLieuVao_hoasuajp.xlsm
    35.3 KB · Đọc: 11
Upvote 0
Bạn xem file. Sửa lại đường dẫn chứa các file xuất. Lưu ý: có mã TB1342J nhìn thì thấy giống nhưng không gióng nhau => không tìm thấy.
Cám ơn Maika8008 rất nhiều, nhiều mã ở các file nhập sai nên dẫn đến truy xuất bị lỗi, em sẽ xử lý bằng tay ạ. Nếu như muốn tạo 1 button riêng ở 1 file xlsm thì mình chỉ cần tạo rồi dẫn đến macro đó là được đúng không ạ?
 
Upvote 0
Cám ơn Maika8008 rất nhiều, nhiều mã ở các file nhập sai nên dẫn đến truy xuất bị lỗi, em sẽ xử lý bằng tay ạ. Nếu như muốn tạo 1 button riêng ở 1 file xlsm thì mình chỉ cần tạo rồi dẫn đến macro đó là được đúng không ạ?
Đúng rồi bạn. Tạo bằng công cụ ActiveX hoặc chèn cái hình chữ nhật cũng được.
 
Upvote 0
Đúng rồi bạn. Tạo bằng công cụ ActiveX hoặc chèn cái hình chữ nhật cũng được.
Em có thêm câu hỏi nhờ Maika8008 giải đáp giúp em ạ.
Mã:
arrF = Array("filexuat1.xls", "filexuat2.xls")
nếu như đây là 1 list nhiều file nữa thì duyệt thế nào để đỡ mất thời gian hơn ạ?
 
Upvote 0
Em có thêm câu hỏi nhờ Maika8008 giải đáp giúp em ạ.
Mã:
arrF = Array("filexuat1.xls", "filexuat2.xls")
nếu như đây là 1 list nhiều file nữa thì duyệt thế nào để đỡ mất thời gian hơn ạ?
Bạn có thể kê thành 1 cột trên trang tính rồi đặt arrF= Range("...."). Khi gọi chúng thì arrF(i, 1).

Hoặc có thể dùng FSO để lấy các file xuất đã để cố định tại 1 folder nào đó
 
Upvote 0
Bạn có thể kê thành 1 cột trên trang tính rồi đặt arrF= Range("...."). Khi gọi chúng thì arrF(i, 1).

Hoặc có thể dùng FSO để lấy các file xuất đã để cố định tại 1 folder nào đó
Mảng là một cùng nhớ liên tục. Như vậy duyệt như thế nào để cứ đi suốt dọc vùng nhớ này, khôg trưở đi trưo lại thì tốt hơn.
Mảng 2 chiều duyệt chậm hơn 1 chiều. Để tìm được phần tử a(i, j), VBA phải dùng i và j để tính toán phần từ này cách vị trí đầu mảng bao nhiêu và dời con trỏ truy cập mảng đến đó. Với a(i), VBA biết ngay chỗ cần truy cập cách đầu mảng i phần tử.
Với mảng nhiều chiều, VBA trọng chiều cuối cùng. Vì vậy với mảng 2 chiều thì duyệt cột trước nhanh hơn duyệt dòng.

Việc duyệt cột/dòng này đã có người giải thích rồi. Tôi ngại lặp lại.

Lưu ý mảng đã là cấu trúc duyệt nhanh rồi, đòi hỏi duyệt "đỡ mất thời gian hơn" của thớt là chuyện nói chơi cho vui, sì-tin GPE. Code rắc rối mà tiết kiệm khoảng vài phần nghìn giây cho một mảng chục triệu phần tử đối với tôi là trò chơi không đáng làm. Thay vì vậy, chuẩn bị mảng cho đúng thể loại thì ngon hơn nhiều. Điển hình mảng Long chứa số trực tiếp, truy vấn rất nhanh. Mảng variant chứa tin tức về phần tử, và dữ liệu chứa chỗ khác, truy vấn chậm hơn.
 
Upvote 0
Web KT
Back
Top Bottom