Đặt giá trị mặc định cho danh sách xác thực xếp tầng động trong Excel 2010


11

Cuối cùng tôi đã tìm ra cách xây dựng một bộ danh sách xếp tầng động trong Excel bằng cách sử dụng Xác thực dữ liệu và hàm INDIRECT. Tuy nhiên, tôi đang gặp vấn đề.

Tôi muốn thiết lập bảng tính của mình để mỗi khi thay đổi được thực hiện trong danh sách xác thực dữ liệu, tất cả các danh sách tiếp theo sẽ được đặt thành giá trị mặc định. Ví dụ:

Giả sử tôi có List1, List2, List3 và List4. Giá trị của mỗi danh sách phụ thuộc vào lựa chọn được đưa ra trong danh sách trước nó. Khi tôi khởi động bảng tính, tôi muốn tất cả các danh sách mặc định là "TẤT CẢ". Khi người dùng chọn một giá trị trong List1, List2 sẽ cập nhật với một tập hợp các lựa chọn hợp lệ. Tôi muốn mặc định List2 cho một trong những lựa chọn đó. Tuy nhiên, trong khi tôi có thể khiến List2 cư trú với tập hợp các tùy chọn lựa chọn chính xác, tôi không thể nhận giá trị mặc định mong muốn của mình được gán cho nó.

Tương tự, nếu người dùng thực hiện lựa chọn trong List1, List2 và List3, sau đó quay lại và thay đổi List1, tôi muốn List2-List4 mặc định trở lại thành "ALL".

Làm thế nào để tôi làm điều này?


3
Đây là một công việc cho một trình kích hoạt sự kiện VBA sheet_change. Tôi không có thời gian ngay bây giờ để cung cấp thông tin chi tiết (sau này tôi sẽ làm nếu bạn vẫn cần trợ giúp), nhưng đó là nơi bạn nên hướng nghiên cứu của mình.
Xuất sắc

Bạn có thể đã giải quyết điều này ngay bây giờ hoặc từ bỏ. Tôi đồng ý với Excellll rằng một sự kiện thay đổi bảng tính có thể là dễ nhất. Tuy nhiên, với tùy chọn Danh sách cho Xác thực dữ liệu, nguồn có thể là một biểu thức, chẳng hạn như =IF(A1="List1",C1:C5,D1:D4). Tôi đã kiểm tra giá trị này với giá trị của ô A1 được chọn từ danh sách và nó hoạt động theo cách bạn tìm kiếm.
Tony Dall Morph

Bạn vẫn đang gặp vấn đề này?
Tamara Wijsman

FYI, một phương pháp nonVBA tôi sử dụng cho vấn đề này là áp dụng định dạng ĐIỀU KIỆN cho các ô tiếp theo để kiểm tra xem giá trị hiện tại mà nó giữ có khớp với một giá trị trong phạm vi giới thiệu INDIRECT () hiện tại không. Nếu KHÔNG, thì ô sẽ chuyển sang màu đỏ hoặc giá trị biến mất (phông chữ / nền phù hợp) để người dùng biết giá trị của ô đó phải được cập nhật / chọn lại.
Jerry Beaucaire

Để minh họa cho cả hai phương pháp VBA và phương pháp CF tôi đã đề cập ở trên, có một tập tin mẫu ở đây DependentLists3.xls
Jerry Beaucaire

Câu trả lời:


1

Phương pháp nonVBA tôi sử dụng cho vấn đề này là áp dụng định dạng ĐIỀU KIỆN cho các ô tiếp theo để kiểm tra xem giá trị hiện tại mà nó giữ có khớp với một giá trị trong phạm vi giới thiệu INDIRECT () hiện tại không. Nếu KHÔNG, thì ô sẽ chuyển sang màu đỏ hoặc giá trị biến mất (phông chữ / nền phù hợp) để người dùng biết giá trị của ô đó phải được cập nhật / chọn lại.

Để minh họa điều này (và phương pháp VBA được đề cập bởi những người khác ở trên), có một tệp mẫu ở đây . Tệp bạn muốn là DepitiveLists3.xls

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.