excel - 明确的依赖性下拉,不使用VBA

时间:2017-12-14 18:58:22

标签: excel excel-formula

我需要帮助清除/更改excel 2013中的依赖下拉列表,,而不使用宏,如果可能的话。我尝试了不同的解决方法,但没有任何工作:

这是我尝试过的事情之一:

=INDIRECT(VLOOKUP($A$8, lookuptable, 2, FALSE))

这不起作用,当父(A8)下拉列表更改时,相关(子)下拉单元格未被清除/更改,从而导致未匹配。

谢谢!

3 个答案:

答案 0 :(得分:1)

依赖数据验证的技术是对每个依赖数据列表使用范围名称。范围名称与父列表中选择的值相同。示例:父数据验证单元格包含国家/地区列表。 您还可以为该国家/地区的城市建立多个列表,每个国家/地区一个列表。每个列表的范围名称是国家/地区名称。

将国家/地区DV应用于A1。

然后构建另一个范围名称以用于城市单元的从属数据验证,例如ListRange。构建范围名称的公式是

=Indirect($A$1)

依赖数据验证然后指向与单元格A1中的值具有相同名称的范围。这是一个动态范围,当单元格A1中的选择发生变化时会发生变化。

这不会清除依赖数据验证单元格中的任何现有选择。例如,如果您的第一个DV小区具有国家列表并且从属DV具有城市列表,则在A1中选择国家将改变城市小区的DV列表并且可以选择城市(法国> Paris)。但是如果国家小组改为意大利,那么城市小区仍将显示巴黎,而DV下降现在列出意大利的城市。

为了在国家/地区单元格更改时清除所选城市,您确实需要VBA。

答案 1 :(得分:0)

这是我提出的最好的,在A2单元格中选择国家,城市将仅根据单元格A4中指定的位置进行更改。我希望它可以帮助你,欢呼。 auto chooser

答案 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