我有一个报告,我想在所选的层次结构上显示信息。 我有一个数据验证,我选择:地理或产品。 - 如果选择了地理位置 - 第二个数据验证将显示产品列表 - 如果选择了产品 - 第二个数据验证将显示地理列表。
数据验证包含正确的列表(我使用了每个层次结构的定义名称,数据验证使用了列表的间接列表)。
问题在于,当我选择不同的层次结构时 - 报告不会显示任何数据,直到从第二个数据验证中选择一个值。 我希望第二个数据验证将列表中的第一个值(或该列表中存在的值)设置为默认值。
是否有解决方案或vba代码? 到现在为止我有这个:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, MonthlySellin.Range("B4")
Application.EnableEvents = False
If Range("$B$4").Value = "Geography" Then
With MonthlySellin("B7").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Legend!$D$3:$D$83"
End With
ElseIf Range("$B$4").Value = "Brand" Then
With MonthlySellin("B7").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Legend!$I$3:$I$50"
End With
End If
End If
Application.EnableEvents = True
End Sub