Excel'Jump Menus',其中下拉选项随其他选项而变化

时间:2016-07-31 12:48:12

标签: excel excel-vba excel-formula excel-2010 vba

是否可以在Excel中创建“跳转菜单”?

与网站上使用的原则相同。根据您选择的选项,下一个菜单会更改。请参阅下面的示例

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

谢谢

1 个答案:

答案 0 :(得分:2)

是的,您可以使用以下设置执行此操作。

在某些工作表设置中,一些命名范围,例如供应商列表(VendorList)和其他一些包含产品的列表,例如AppleListMSList

enter image description here

例如产品清单:

enter image description here

在另一张纸上,您可以使用数据验证设置两个单元格。设置一个为VendorList,另一个默认为例如AppleListenter image description here

其他细胞验证: enter image description here

然后,在Worksheet代码模块中,为Worksheet_Change事件添加此代码:

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo CleanUp

    If Not Intersect(Target, Range("Selection1")) Is Nothing Then
        'suspend events
        Application.EnableEvents = False
        'remove existing validation
        Range("Selection2").Validation.Delete
        'add new validation to Selection2
        Select Case Range("Selection1").Value
            Case "Apple"
                    Range("Selection2").Validation.Add _
                        Type:=xlValidateList, _
                        Formula1:="=AppleList"
            Case "Microsoft"
                    Range("Selection2").Validation.Add _
                        Type:=xlValidateList, _
                        Formula1:="=MSList"
            Case Else
                'do nothing
        End Select

    End If

CleanUp:
    Application.EnableEvents = True

End Sub

请注意,代码会暂停EnableEvents,因为您将Range值更改为事件处理程序的一部分。