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

时间:2013-08-22 14:55:58

标签: excel excel-vba excel-formula excel-2010 vba

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

例如,如果列表1为['是','否'],则列表为是:[1,2,3]否:[4,5,6]。首先,我为A1选择“是”,然后为A2选择2。然后,如果我为A1选择“否”,则“2”保持在A2,直到我实际点击A2以选择新值(4,5,6)。一旦我改变了A1选择,有没有办法“清除”A2?

谢谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

将此代码放入Worksheet的代码页:

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

答案 2 :(得分:0)

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