Userform MultiPage导航

时间:2015-12-17 21:16:54

标签: excel vba excel-vba

我有一个在Excel中构建的Userform,它有大约十个使用MultiPage设置的选项卡。问题是我的空间不足以获得额外的标签,并且真的想用更友好的导航菜单或工具栏替换标签。我查看了微软工具栏控件,它接近我正在寻找但我不能改变高度,下拉列表必须点击箭头和文本,这在我看来不是那么直观

所以我的问题是,您是否熟悉更好的多页导航设置,可能使用ActiveX的形式?

2 个答案:

答案 0 :(得分:1)

我建议将您的用户表格分成单独的表格或基于类别的子表格。 如果它们都是无模式,则可以让一个表单启动另一个表单,并且两个表单可以同时在屏幕上。这样,您可以连续使用它们。

要以无模式启动表单,当您Form1.Show将其更改为Form1.Show vbModeless

答案 1 :(得分:0)

我最终做的是制作一个列表框,其中包含我的多页面的所有不同页面,然后将此列表框放在我的Userform的左侧,然后使用此代码

填充列表框

    i = 0
    With Main_Window.form_navigation_list
            .AddItem "Domestic"
                .List(i, 0) = "Page 1"
                .List(i, 1) = 0
        i = i + 1
            .AddItem
                .List(i, 0) = "Page 2"
                .List(i, 1) = 1
        i = i + 1
End With

然后我点击了

Private Sub form_navigation_list_Click()
    Dim i As Integer
    Dim SelectedRow As Integer

        For SelectedRow = 0 To Main_Window.form_navigation_list.ListCount - 1
            If Main_Window.form_navigation_list.Selected(SelectedRow) Then
                nav_page = Main_Window.form_navigation_list.List(SelectedRow, 1)
                With Main_Window
                    .MultiPage1.Value = nav_page
                    .Show
                End With
            End If
        Next

End Sub

我开始使用flexgrid,但一直遇到内存泄漏问题,程序会崩溃,所以我换成了列表框,现在工作正常。现在我可以自定义此列表框,使其看起来更像我想要的导航。