VBa - пользовательская форма показывает один и тот же комбинированный список на двух страницах - PullRequest
0 голосов
/ 02 июля 2018

Итак, у меня есть многостраничный режим, где я хочу, чтобы одна и та же кнопка отображалась на обеих страницах. Я мог бы поместить это снаружи, но граница от многостраничности настолько уродлива, что я попытался разместить все на страницах. К сожалению, вы не можете назвать предметы (например, выпадающий список) с тем же именем. Есть ли обходной путь, чтобы убрать границы и просто показать имена страниц или иметь одинаковое имя на элементе на двух страницах?

enter image description here

enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Повеселился с этой целью.

Рассмотрите эту пользовательскую форму в редакторе с TabStrip, 2 фрейма и некоторыми другими элементами управления.
Кадры названы от Frame0, Frame1 и т. Д.
Предполагая, что Frame0 является ссылкой на местоположение и сначала отображается при отображении пользовательской формы, вам будет необходим код ниже.
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...