Tôi có 1 file Excel cần giải quyết như sau:
Trên diễn đàn này trong topic Searching for 50 combinations 1 thành viên có vấn đề như sau:
1. Vấn đề:Từ 1 danh sách Post codes, Order No, ... khoảng 10.000 dòng, anh ta muốn dùng AutoFilter để lọc ra 1 danh sách khoảng 50 loại postcode (trong số 200 gì đó) dựa trên 3 hoặc 4 ký tự đầu và chỉ lấy OrderNo trong khoảng 10 loại dựa trên 1 ký tự đầu.
2. Anh ta đang dùng 1 cột phụ với công thức
=If(And(Or(Left(PostCodes)= xxx), or(left(OrderNo) = yyy))
tạo các giá trị 1, 0 để dùng AutoFilter lọc các giá trị Post codes, Order No tương ứng (khoảng 50 sự kết hợp And và Or), nhưng như vậy là thủ công và công thức quá dài chiếm quá 1/2 trang màn hình.
3. Yêu cầu: Dùng VBA tạo 1 cột phụ như trên.
Tôi đã làm như trong file:
- dùng left tạo 2 cột phụ (họ không care chuyện bao nhiêu cột phụ, miễn đạt kết quả)
- Dùng VBA tạo cột phụ thứ 3 theo yêu cầu, Autofilter ra kết quả mong muốn.
Tuy nhiên với trình độ VBA hạng bét tôi chỉ có thể dùng lệnh gán công thức Excel cũng if(And(Or())) vào cell rồi copy paste value lại.
Hơn nữa công thức Excel có giới hạn 1 cái or chỉ cho 30 tham số là giá trị logic trong khi yêu cầu lên đến 50.
Vậy tôi xin hỏi trong VBA có giới hạn này không, và có thể sửa code theo hướng dùng Or của VBA như thế nào?
Vì nếu dùng Or của VBA ra kết quả 0 hoặc 1 rồi mới gán kết quả này vào cell, code sẽ chạy nhanh hơn.
Xin cám ơn!
Trên diễn đàn này trong topic Searching for 50 combinations 1 thành viên có vấn đề như sau:
1. Vấn đề:Từ 1 danh sách Post codes, Order No, ... khoảng 10.000 dòng, anh ta muốn dùng AutoFilter để lọc ra 1 danh sách khoảng 50 loại postcode (trong số 200 gì đó) dựa trên 3 hoặc 4 ký tự đầu và chỉ lấy OrderNo trong khoảng 10 loại dựa trên 1 ký tự đầu.
2. Anh ta đang dùng 1 cột phụ với công thức
=If(And(Or(Left(PostCodes)= xxx), or(left(OrderNo) = yyy))
tạo các giá trị 1, 0 để dùng AutoFilter lọc các giá trị Post codes, Order No tương ứng (khoảng 50 sự kết hợp And và Or), nhưng như vậy là thủ công và công thức quá dài chiếm quá 1/2 trang màn hình.
3. Yêu cầu: Dùng VBA tạo 1 cột phụ như trên.
Tôi đã làm như trong file:
- dùng left tạo 2 cột phụ (họ không care chuyện bao nhiêu cột phụ, miễn đạt kết quả)
- Dùng VBA tạo cột phụ thứ 3 theo yêu cầu, Autofilter ra kết quả mong muốn.
Tuy nhiên với trình độ VBA hạng bét tôi chỉ có thể dùng lệnh gán công thức Excel cũng if(And(Or())) vào cell rồi copy paste value lại.
Hơn nữa công thức Excel có giới hạn 1 cái or chỉ cho 30 tham số là giá trị logic trong khi yêu cầu lên đến 50.
Vậy tôi xin hỏi trong VBA có giới hạn này không, và có thể sửa code theo hướng dùng Or của VBA như thế nào?
Vì nếu dùng Or của VBA ra kết quả 0 hoặc 1 rồi mới gán kết quả này vào cell, code sẽ chạy nhanh hơn.
Xin cám ơn!