Xin chào các bạn, mình có file hoạt động như sau :
1/ Mở sheet "Home", bấm nút "Show my form" sẽ khởi tạo một form trong đó có 4 hàng, trong mỗi hàng sẽ có một Drop down list dạng Combobox.
2/ Khi mở form thì đồng thời sẽ khởi chạy hàm tự tạo tên là "DynamicList". Hàm này sẽ lấy dữ liệu bên cột 1 sheet "Master Sheet", loại bỏ trùng lặp và đưa dữ liệu vào combobox ở mục "Category" (hộp 1) để người dùng chọn.
3/ Sau khi chọn hộp 1, sự kiện thay đổi (change) ở "Categoty" sẽ kích hoạt mã, tiếp tục truyền tham số cho hàm "DynamicList" để chích lọc ở cột 2 (Sub Category) sheet "Master Sheet" theo những dữ liệu liên quan đến thông tin đã chọn ở hộp Category và chuyền cho drop down list của hộp "Sub Category" (hộp 2) để chờ người dùng chọn.
4/ Qúa trình cứ tiếp tục như vậy cho các hộp chọn còn lại (có 4 hộp chọn tất cả trên useform : Category, Sub Category, Item, Sub Item), để người dùng chọn thông tin. Hộp sau sẽ chỉ hiện những thông tin phụ thuộc vào hộp trước nó.
5/ Các nút bấm còn lại tạm thời chưa có code nên không xét tới. Các Code còn lại chạy bình thường và chọn các giá trị trong các hộp rất thuận lợi.
* VẤN ĐỀ GẶP PHẢI :
- Mình ko muốn dùng useform nên thử tạo 1 sheet tên là "VD" tại đây tạo các combobox dàn ngang, viết code tạo sự kiện và truyền các giá trị cho nó, sau đó khởi tạo quá trình như mô tả ở 1/ bằng nút "NHAP", code viết trực tiếp trên sheet "VD"
- Vấn đề : khi sự kiện nút được bấm (bắt đầu khởi tạo quá trình tạo drop down list cho hộp thứ nhất), code vẫn truyền tham số vô cho hàm "DynamicList", hàm vẫn trích lọc, gán giá trị cho các biến như bình thường nhưng cứ tới đoạn "Exit Function" để kết thúc hàm, trả giá trị về cho biến "cmbCategory" trong sự kiện UserForm_Initialize() thì bị báo lỗi 438 " Object doesn't support this property or method". Xin mọi người trợ giúp cho biết là mình bị sai chỗ nào ? Đối tượng của mình ở cả 2 trường hợp đều là combobox nhưng tại sao combobox trong userform hoạt động còn trên sheet thì không ?
Xin cảm ơn.
1/ Mở sheet "Home", bấm nút "Show my form" sẽ khởi tạo một form trong đó có 4 hàng, trong mỗi hàng sẽ có một Drop down list dạng Combobox.
2/ Khi mở form thì đồng thời sẽ khởi chạy hàm tự tạo tên là "DynamicList". Hàm này sẽ lấy dữ liệu bên cột 1 sheet "Master Sheet", loại bỏ trùng lặp và đưa dữ liệu vào combobox ở mục "Category" (hộp 1) để người dùng chọn.
3/ Sau khi chọn hộp 1, sự kiện thay đổi (change) ở "Categoty" sẽ kích hoạt mã, tiếp tục truyền tham số cho hàm "DynamicList" để chích lọc ở cột 2 (Sub Category) sheet "Master Sheet" theo những dữ liệu liên quan đến thông tin đã chọn ở hộp Category và chuyền cho drop down list của hộp "Sub Category" (hộp 2) để chờ người dùng chọn.
4/ Qúa trình cứ tiếp tục như vậy cho các hộp chọn còn lại (có 4 hộp chọn tất cả trên useform : Category, Sub Category, Item, Sub Item), để người dùng chọn thông tin. Hộp sau sẽ chỉ hiện những thông tin phụ thuộc vào hộp trước nó.
5/ Các nút bấm còn lại tạm thời chưa có code nên không xét tới. Các Code còn lại chạy bình thường và chọn các giá trị trong các hộp rất thuận lợi.
* VẤN ĐỀ GẶP PHẢI :
- Mình ko muốn dùng useform nên thử tạo 1 sheet tên là "VD" tại đây tạo các combobox dàn ngang, viết code tạo sự kiện và truyền các giá trị cho nó, sau đó khởi tạo quá trình như mô tả ở 1/ bằng nút "NHAP", code viết trực tiếp trên sheet "VD"
- Vấn đề : khi sự kiện nút được bấm (bắt đầu khởi tạo quá trình tạo drop down list cho hộp thứ nhất), code vẫn truyền tham số vô cho hàm "DynamicList", hàm vẫn trích lọc, gán giá trị cho các biến như bình thường nhưng cứ tới đoạn "Exit Function" để kết thúc hàm, trả giá trị về cho biến "cmbCategory" trong sự kiện UserForm_Initialize() thì bị báo lỗi 438 " Object doesn't support this property or method". Xin mọi người trợ giúp cho biết là mình bị sai chỗ nào ? Đối tượng của mình ở cả 2 trường hợp đều là combobox nhưng tại sao combobox trong userform hoạt động còn trên sheet thì không ?
Xin cảm ơn.