VBa-用户窗体在两个页面上显示相同的组合框

时间:2018-07-02 05:18:54

标签: vba userform multipage

所以我有一个多页,我希望在两个页面上都显示相同的按钮。我可以将其放置在外部,但是多页页面的边框非常丑陋,因此我尝试将所有内容都放置在页面上。不幸的是,您无法使用相同的名称来命名项目(例如组合框)。是否有一种解决方法,可以删除边框并仅显示页面名称,或者在两个页面上的项目上使用相同的名称?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

为此目标带来一些乐趣。

在带有TabStrip,2个框架和其他控件的Editor中考虑此用户窗体。
框架由Frame0Frame1等命名。
假设 Frame0 是位置参考,并且在显示UserForm时首先显示,下面的代码就是您想要的。
UserForm Editor

代码:

Option Explicit

Private Sub TabStrip1_Change()
    Dim i As Long, lActiveTabIndex As Long
    lActiveTabIndex = Me.TabStrip1.Value
    For i = 0 To Me.TabStrip1.Tabs.Count - 1
        Me.Controls("Frame" & i).Visible = (i = lActiveTabIndex)
    Next i
End Sub

Private Sub UserForm_Initialize()
    Dim i As Long
    With Me
        .Height = 288 ' Adjust to your desired height
        ' Align all FrameX top/left to same as Frame0, delete Caption and SpecialEffect
        For i = 0 To Me.TabStrip1.Tabs.Count - 1
            With Me.Controls("Frame" & i)
                .Top = Me.Frame0.Top
                .Left = Me.Frame0.Left
                .Caption = ""
                .SpecialEffect = fmSpecialEffectFlat
            End With
        Next i
    End With
    ' Ensure frame for first tab is displayed
    TabStrip1_Change
End Sub

首先加载用户表单(没有保存屏幕截图,也没有保存工作簿,对不起)。

点击了下一个标签:
next tab clicked