我需要帮助清除/更改excel 2013中的依赖下拉列表,,而不使用宏,如果可能的话。我尝试了不同的解决方法,但没有任何工作:
这是我尝试过的事情之一:
=INDIRECT(VLOOKUP($A$8, lookuptable, 2, FALSE))
这不起作用,当父(A8
)下拉列表更改时,相关(子)下拉单元格未被清除/更改,从而导致未匹配。
谢谢!
答案 0 :(得分:1)
依赖数据验证的技术是对每个依赖数据列表使用范围名称。范围名称与父列表中选择的值相同。示例:父数据验证单元格包含国家/地区列表。 您还可以为该国家/地区的城市建立多个列表,每个国家/地区一个列表。每个列表的范围名称是国家/地区名称。
将国家/地区DV应用于A1。
然后构建另一个范围名称以用于城市单元的从属数据验证,例如ListRange。构建范围名称的公式是
=Indirect($A$1)
依赖数据验证然后指向与单元格A1中的值具有相同名称的范围。这是一个动态范围,当单元格A1中的选择发生变化时会发生变化。
这不会清除依赖数据验证单元格中的任何现有选择。例如,如果您的第一个DV小区具有国家列表并且从属DV具有城市列表,则在A1中选择国家将改变城市小区的DV列表并且可以选择城市(法国> Paris)。但是如果国家小组改为意大利,那么城市小区仍将显示巴黎,而DV下降现在列出意大利的城市。
为了在国家/地区单元格更改时清除所选城市,您确实需要VBA。
答案 1 :(得分:0)
答案 2 :(得分:-1)
我有一个用于类似实例的代码示例,一个带有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