2013-08-22 43 views
6

我有两个下拉列表 - 一个取决于另一个 - 意思是如果我从A1中的列表中选择一个特定的值,则会在A2中显示一个特定的列表。这工作得很好。但是,当我更改A1中的值时,A2保留在单元格中,直到我单击列表中 - 那么A2中的值将根据我的选择而改变。例如,如果列表1是['是','否']并且列表为是:[1,2,3]否:[4,5,6]。首先,我为A1选择“是”,然后为A2选择2。然后,如果我为A1选择“否”,则“2”将保留在A2中,直到我实际点击A2来选择一个新值(4,5,6)。一旦我改变了A1的选择,有什么办法可以“清除”A2?Excel和更改两个下拉列表之间的值

谢谢!

回答

3

将这个代码的代码页为您Worksheet

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

伟大的解决方案 - 非常简单! – mcfly

0

您可以在工作表的worksheet_change过程中插入用于刷新A2列表的代码。每次在该工作表中更改单元格值时,都会运行更新代码。

+0

这听起来权利。我目前没有使用任何VBA - 你能提供一个例子吗?谢谢! – mcfly

+0

看起来像mcfly有一个很好的解决方案[上](http://stackoverflow.com/a/18384534/2658159)。 –

4

把这个在您的工作表中的VBA代码:

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 
相关问题