默认数据验证

时间:2016-08-08 18:25:08

标签: excel vba

我有一个报告,我想在所选的层次结构上显示信息。 我有一个数据验证,我选择:地理或产品。 - 如果选择了地理位置 - 第二个数据验证将显示产品列表 - 如果选择了产品 - 第二个数据验证将显示地理列表。

数据验证包含正确的列表(我使用了每个层次结构的定义名称,数据验证使用了列表的间接列表)。

问题在于,当我选择不同的层次结构时 - 报告不会显示任何数据,直到从第二个数据验证中选择一个值。 我希望第二个数据验证将列表中的第一个值(或该列表中存在的值)设置为默认值。

是否有解决方案或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

0 个答案:

没有答案