【发布时间】:2017-12-14 18:58:21
【问题描述】:
如果可能的话,我需要帮助清除/更改 excel 2013 中的依赖下拉列表,不使用宏。我尝试了不同的解决方法,但没有任何效果:
这是我尝试过的事情之一:
=INDIRECT(VLOOKUP($A$8, lookuptable, 2, FALSE))
这不起作用,当父 (A8) 下拉列表更改时,依赖(子)下拉单元格没有被清除/更改,导致不匹配。
谢谢!
【问题讨论】:
标签: excel excel-formula
如果可能的话,我需要帮助清除/更改 excel 2013 中的依赖下拉列表,不使用宏。我尝试了不同的解决方法,但没有任何效果:
这是我尝试过的事情之一:
=INDIRECT(VLOOKUP($A$8, lookuptable, 2, FALSE))
这不起作用,当父 (A8) 下拉列表更改时,依赖(子)下拉单元格没有被清除/更改,导致不匹配。
谢谢!
【问题讨论】:
标签: excel excel-formula
依赖数据验证的技术是为每个依赖数据列表使用范围名称。范围名称与父列表中选择的值相同。示例:父数据验证单元格有一个国家列表。 您还构建了多个列表,每个国家/地区一个,包含该国家/地区的城市。每个列表的范围名称是国家/地区名称。
将国家DV应用于A1。
然后构建另一个范围名称以用于城市单元格的相关数据验证,例如列表范围。建立范围名称的公式是
=Indirect($A$1)
依赖数据验证然后指向与单元格 A1 中的值同名的范围。这是一个动态范围,会随着单元格 A1 中的选择发生变化而变化。
这不会清除相关数据验证单元格中的任何现有选择。例如,如果您的第一个 DV 单元有一个国家列表,而从属 DV 有一个城市列表,则在 A1 中选择一个国家将更改城市单元的 DV 列表,并且可以选择一个城市(法国 > 巴黎)。但如果国家单元格更改为意大利,城市单元格仍将显示巴黎,而 DV 下拉列表现在列出意大利的城市。
为了在国家单元格更改时清除所选城市,您确实需要VBA。
【讨论】:
我有一段用于类似实例的示例代码,一个包含 3 个选项的下拉列表,使用间接公式为每个选项提供不同的选择。
我通过数据验证使用命名范围和间接公式。
在此示例中,当我在下拉单元格“D2”中更改列表值时,它将清除“F2”中的第二个下拉列表(右侧 2 列或偏移 2)。然后,这使用户能够根据选项更改从新选项中进行选择...
希望这会有所帮助。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then
If Target.Validation.Type = "$F$2" Then
Application.EnableEvents = False
Target.Offset(0, 2).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
【讨论】: