2013-08-22 43 views
6

Tôi có hai danh sách thả xuống - một danh sách phụ thuộc vào nhau - nghĩa là nếu tôi chọn một giá trị cụ thể từ danh sách trong A1, danh sách cụ thể sẽ xuất hiện trong A2. Điều này hoạt động tốt. Tuy nhiên, khi tôi thay đổi giá trị trong A1, A2 vẫn ở trong ô cho đến khi tôi nhấp vào danh sách - thì giá trị của tôi trong A2 sẽ thay đổi dựa trên lựa chọn của tôi. Ví dụ: nếu danh sách 1 là ['Có', 'Không'] và liệt kê là Có: [1,2,3] Không: [4,5,6]. Đầu tiên tôi chọn 'Có' cho A1 và sau đó chọn 2 cho A2. Sau đó, nếu tôi chọn 'Không' cho A1, "2" vẫn ở A2 cho đến khi tôi thực sự nhấp vào A2 để chọn một giá trị mới (4,5,6). Có cách nào để "rõ ràng" A2 một khi tôi đã thay đổi lựa chọn A1?Excel và thay đổi giá trị giữa hai danh sách thả xuống

Cảm ơn!

Trả lời

3

Đặt mã này trong trang mã cho Worksheet của bạn:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = Range("A1").Address Then 
     Range("A2").ClearContents 
    End If 
End Sub 
+0

Giải pháp tuyệt vời - rất dễ dàng! – mcfly

0

Bạn có thể chèn mã để làm mới danh sách A2 trong thủ tục worksheet_change cho trang tính của bạn. Mỗi lần một giá trị ô được thay đổi trong trang tính đó, mã cập nhật của bạn sẽ chạy.

+0

này nghe có vẻ đúng. Tôi hiện không sử dụng bất kỳ VBA nào - bạn có thể cung cấp một ví dụ không? Cảm ơn! – mcfly

+0

Hình như mcfly có một giải pháp tuyệt vời [ở trên] (http://stackoverflow.com/a/18384534/2658159). –

4

đặt này trong mã VBA cho bảng tính của bạn:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    If Target.Address = Range("A1").Address Then 
     Dim dependentCell As Range 
     Set dependentCell = Target.Offset(1, 0)  'Cell A2 
     If dependentCell.Validation.Value = False Then dependentCell.Clear 
    End If   
End Sub