Lỗi khi kết hợp advanced fiter và VBA

Liên hệ QC

suzuki tadayoshi

Thành viên chính thức
Tham gia
16/12/16
Bài viết
52
Được thích
1
Em có thắc mắc ko biết giải thích làm sao!
Em muốn lọc bảng thu chi bằng chức năng advanced fiter (cái này cơ bản rồi):)
Rắc rồi chỉ xảy ra khi em record macro rồi asign vào nút để lọc cho tiện:
- Lỗi xảy ra khi điều kiện em dùng dấu "<,>,<>" kết hợp với ngày: như ví dụ lọc những khoản <02/01/2018.
Chạy macro thì không ra, nhưng nếu làm thủ công advanced fiter thì lại ok.
Mong các huynh chỉ giáo giùm.
Thanks!
 

File đính kèm

  • loi ket hop filter advanced va vba.xlsm
    39.4 KB · Đọc: 13
Em có thắc mắc ko biết giải thích làm sao!
Em muốn lọc bảng thu chi bằng chức năng advanced fiter (cái này cơ bản rồi):)
Rắc rồi chỉ xảy ra khi em record macro rồi asign vào nút để lọc cho tiện:
- Lỗi xảy ra khi điều kiện em dùng dấu "<,>,<>" kết hợp với ngày: như ví dụ lọc những khoản <02/01/2018.
Chạy macro thì không ra, nhưng nếu làm thủ công advanced fiter thì lại ok.
Mong các huynh chỉ giáo giùm.
Thanks!
Phải có dấu nháy đơn trước ký tự <
Ví dụ '>
 
Mình đã thử để thêm dấu ' rồi và vẫn không được. Vấn đề là khi làm thủ công thì ok, trong khi record macro lại y chang chạy lại thì không được. vậy điểm khác biệt ở đây là gì mình không hiểu
 
Mình đã thử để thêm dấu ' rồi và vẫn không được. Vấn đề là khi làm thủ công thì ok, trong khi record macro lại y chang chạy lại thì không được. vậy điểm khác biệt ở đây là gì mình không hiểu
Bạn làm như sau:
- Gõ ngày tháng cần lọc vào 1 cell khác (chẳng hạn là cell I2)
- Tại A3, gõ công thức ="<"&I2
Giờ chạy lại code xem sao
 
Mình đã thử để thêm dấu ' rồi và vẫn không được. Vấn đề là khi làm thủ công thì ok, trong khi record macro lại y chang chạy lại thì không được. vậy điểm khác biệt ở đây là gì mình không hiểu
1. Chỉnh lại cột ngày tháng theo định dạng tiếng anh. Ví dụ 02-Jan-18
2. Trong ô điều kiện lọc nhập '> 02-Jan-18

................
Nếu không chạy thì mình bó tay vì code này mình xài mỗi ngày
 
1. Chỉnh lại cột ngày tháng theo định dạng tiếng anh. Ví dụ 02-Jan-18
2. Trong ô điều kiện lọc nhập '> 02-Jan-18

................
Nếu không chạy thì mình bó tay vì code này mình xài mỗi ngày
Mình đã thử chuyển đủ thứ định dạng rồi nhưng không ăn thua, thanks bạn.
Cách của bác ndu96081631 macro chạy rất chính xác, thanks bác. Nhưng sao trường hợp này (phải nhập ngày lọc qua ô riêng rồi dùng hàm... không trực quan tí nào )macro có vẻ không được tiện rồi...:(
 
Cách của bác ndu96081631 macro chạy rất chính xác, thanks bác. Nhưng sao trường hợp này (phải nhập ngày lọc qua ô riêng rồi dùng hàm... không trực quan tí nào )macro có vẻ không được tiện rồi...:(
Gì mà không tiện? Đằng nào cũng phải gõ vào 1 cell nào đó, đúng không? Giờ không gõ chỗ này thì gõ chỗ khác
Nói chung: Biết dùng "hàng" thì mọi thứ đều tiện và ngược lại
(Với Advanced Filter, khi làm việc với Date phải đặc biệt lưu ý)
 
Gì mà không tiện? Đằng nào cũng phải gõ vào 1 cell nào đó, đúng không? Giờ không gõ chỗ này thì gõ chỗ khác
Nói chung: Biết dùng "hàng" thì mọi thứ đều tiện và ngược lại
(Với Advanced Filter, khi làm việc với Date phải đặc biệt lưu ý)
Bác nói đúng quá, nhiều "hàng" phải từ từ vào mới chịu:D
 
Nãy tôi sửa code rồi nhưng thấy rỗi hơi quá nên thôi bạn đợi mấy anh ra tay đi.
 
Nãy tôi sửa code rồi nhưng thấy rỗi hơi quá nên thôi bạn đợi mấy anh ra tay đi.
Ý bạn là code AutoFilter?
Cũng được nhưng xin lưu ý rằng AutoFilter trong nhiều trường hợp sẽ không tốt bằng Advanced Filter, nhất là với dữ liệu lớn, AutoFilter sẽ kém hơn Advanced Filter về mặt tốc độ. Với những điều kiện ràng buộc phức tạp, AutoFilter càng thua
 
Ý bạn là code AutoFilter?
Cũng được nhưng xin lưu ý rằng AutoFilter trong nhiều trường hợp sẽ không tốt bằng Advanced Filter, nhất là với dữ liệu lớn, AutoFilter sẽ kém hơn Advanced Filter về mặt tốc độ. Với những điều kiện ràng buộc phức tạp, AutoFilter càng thua
Cái này em không hiểu ý anh lắm. Nếu được anh chỉ giáo thêm cho em với ạ.
 
Cái này em không hiểu ý anh lắm. Nếu được anh chỉ giáo thêm cho em với ạ.
Bạn không hiểu chỗ nào?
1> Thứ nhất: Về phần điều kiện thì dễ thấy rồi! Advanced Filter làm việc với những điều kiện ràng buộc phức tạp hơp AutoFilter
2> Thứ hai: Về tốc độ. Với dữ liệu lớn, AutoFilter sẽ chậm, thậm chí là rất chậm. Bạn cứ tìm file nào đó (hoặc tự giả lập) có số dòng khoảng 60000 trở lên rồi so sánh là biết
 
Bạn không hiểu chỗ nào?
1> Thứ nhất: Về phần điều kiện thì dễ thấy rồi! Advanced Filter làm việc với những điều kiện ràng buộc phức tạp hơp AutoFilter
2> Thứ hai: Về tốc độ. Với dữ liệu lớn, AutoFilter sẽ chậm, thậm chí là rất chậm. Bạn cứ tìm file nào đó (hoặc tự giả lập) có số dòng cở 60000 trở lên rồi so sánh là biết
Dạ, tại công việc của em không liên quan nhiều lắm về phần này nên ít dùng rồi. Thực tình còn kém sử dụng excel lắm, có thời gian em sẽ nghiên cứu thêm gợi ý của anh. Cảm ơn anh chia sẻ và chúc anh buổi chiều vui vẻ ạ.
 
Mình đã thử chuyển đủ thứ định dạng rồi nhưng không ăn thua, thanks bạn.
Lỡ phóng lao rồi mà không làm thì sẽ có người ném đá. Bạn thử file đính kèm coi sao

Mã:
Sub XEM_KQ()
On Error Resume Next
ActiveSheet.ShowAllData
[A6:H1000].AdvancedFilter 1, Range("A2:F3"), 0
End Sub
 

File đính kèm

  • loi ket hop filter advanced va vba.xlsm
    39 KB · Đọc: 15
Lỡ phóng lao rồi mà không làm thì sẽ có người ném đá. Bạn thử file đính kèm coi sao

Mã:
Sub XEM_KQ()
On Error Resume Next
ActiveSheet.ShowAllData
[A6:H1000].AdvancedFilter 1, Range("A2:F3"), 0
End Sub
Thật ra là không cần phải format vùng dữ liệu làm gì. Trong vùng điều kiện, cứ ghi theo 1 trong 2 định dạng này là được
1> Hoặc là <2-Jan-18 (định dạng d-MMM-yy)
2> Hoặc là <2018/1/2 (định dạng yyyy/m/d)
Vậy là xong!
Vấn đề ở đây là: Khó ép người dùng nhập theo ý của ta, nên yêu cầu gõ tại 1 cell khác rồi dùng công thức phối hợp cũng rất hợp lý
 
Mình làm kiểu này, chủ bài đăng tham khảo xem sao
 

File đính kèm

  • Filter.rar
    11.7 KB · Đọc: 12
Lỡ phóng lao rồi mà không làm thì sẽ có người ném đá. Bạn thử file đính kèm coi sao

Mã:
Sub XEM_KQ()
On Error Resume Next
ActiveSheet.ShowAllData
[A6:H1000].AdvancedFilter 1, Range("A2:F3"), 0
End Sub
Cám ơn bạn, macro chạy vầy là ok rồi, tuy nhiên hơi khó khăn trong khâu nhập liệu :D
 
Thật ra là không cần phải format vùng dữ liệu làm gì. Trong vùng điều kiện, cứ ghi theo 1 trong 2 định dạng này là được
1> Hoặc là <2-Jan-18 (định dạng d-MMM-yy)
2> Hoặc là <2018/1/2 (định dạng yyyy/m/d)
Vậy là xong!
Vấn đề ở đây là: Khó ép người dùng nhập theo ý của ta, nên yêu cầu gõ tại 1 cell khác rồi dùng công thức phối hợp cũng rất hợp lý
Cái chính là em muốn lọc theo tháng ( không cần theo ngày) nhưng trình kém nên mới làm theo cách >ngày& <ngày.... ai ngờ cũng bị vướng. Bác ndu96081631 ra chiêu giúp cho em được không ạ: nhập vô ô tháng là lọc ra luôn. Thanks bác
 
Bác ndu96081631 ra chiêu giúp cho em được không ạ: nhập vô ô tháng là lọc ra luôn. Thanks bác
Thì giống như bài 4 đấy! Bạn nhập tháng ở cell khác, còn cell điều kiện sẽ là công thức kết hợp. Chẳng hạn:
- Gõ số 1 vào cell I2 (ý là muốn lọc tháng 1)
- Gõ vào A3 công thức =">="&TEXT(DATE(2018,$I$2,1),"yyyy/mm/dd")
- Gõ vào B3 công thức ="<"&TEXT(DATE(2018,$I$2+1,1),"yyyy/mm/dd")
- Cuối cùng là chạy code
Tóm lại muốn lọc tháng mấy, cứ gõ vào I2
 
Web KT
Back
Top Bottom