Excel和在两个下拉列表之间更改值

Excel和在两个下拉列表之间更改值,excel,excel-formula,excel-2010,vba,Excel,Excel Formula,Excel 2010,Vba,我有两个下拉列表-一个依赖于另一个-这意味着如果我从A1中的列表中选择一个特定的值,A2中会出现一个特定的列表。这个很好用。但是,当我更改A1中的值时,A2将保留在单元格中,直到我单击列表-然后A2中的值将根据我的选择而更改 例如,如果列表1为['Yes','No'],列表to为Yes:[1,2,3]否:[4,5,6]。首先,我为A1选择“是”,然后为A2选择2。然后,如果我为A1选择“否”,2将保持在A2中,直到我实际单击A2以选择一个新值4,5,6。一旦我更改了A1选项,有没有办法清除A2

我有两个下拉列表-一个依赖于另一个-这意味着如果我从A1中的列表中选择一个特定的值,A2中会出现一个特定的列表。这个很好用。但是,当我更改A1中的值时,A2将保留在单元格中,直到我单击列表-然后A2中的值将根据我的选择而更改

例如,如果列表1为['Yes','No'],列表to为Yes:[1,2,3]否:[4,5,6]。首先,我为A1选择“是”,然后为A2选择2。然后,如果我为A1选择“否”,2将保持在A2中,直到我实际单击A2以选择一个新值4,5,6。一旦我更改了A1选项,有没有办法清除A2


谢谢

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

将此代码放入工作表的代码页:


将其放入工作表的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

这听起来不错。我目前没有使用任何VBA-你能提供一个例子吗?谢谢看起来mcfly有一个很好的解决方案。很好的解决方案-非常简单!
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