Как программно добавлять и переименовывать вкладки в вкладке пользовательской формы vba? - PullRequest
0 голосов
/ 27 мая 2018

Я пытался написать программу, которая добавит новую вкладку в tabstrip vba.Мне нужно сделать это во время выполнения.У меня есть кнопка «Добавить вкладку», чтобы добавить его.И в то же время он будет переименовывать вкладку как серию, например «Добавить вкладку» >> «Насадка 2», «Добавить вкладку» >> «Насадка 3» и так далее.Любая помощь?Ниже приведен код, который я пробовал, но он показывает ошибку несоответствия типов, почему? - Я не понимаю.Я попытался с подобным кодом для многостраничного, и это сработало.Но почему это не работает для Tabstrip ??

Private Sub CommandButton1_Click()
Dim newPage As Tabs
Dim PagesCnt As Long

With Me.TabStrip1
   PagesCnt = .Count
   Set newPage = .Tabs.Add("Nozzle" & (PagesCnt + 1), "Nozzle " & (PagesCnt + 1), PagesCnt)
   UserForm1.TabStrip1.Value = PagesCnt
End With

End Sub

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Tabs - это коллекция вкладок, поэтому вы не можете установить ее как отдельную вкладку

правильный тип для вкладки элемент управления MSForms.Tab

    Dim newPage As MSForms.Tab

, но вам он вообще не нужен:

Private Sub CommandButton1_Click()
    Dim PagesCnt As Long

    With Me.TabStrip1
       PagesCnt = .Count
       .Tabs.Add "Nozzle" & (PagesCnt + 1), "Nozzle " & (PagesCnt + 1), PagesCnt
       .Value = PagesCnt
    End With    
End Sub

, и вы также можете избавиться от переменной PagesCnt:

Private Sub CommandButton1_Click()
    With Me.TabStrip1
      .Tabs.Add "Nozzle" & (.Count + 1), "Nozzle " & (.Count + 1), .Count
       .Value = .Count - 1
    End With
End Sub
0 голосов
/ 27 мая 2018

В приведенном ниже примере используется свойство Style, чтобы указать внешний вид вкладок в MultiPage и TabStrip.Этот пример также демонстрирует использование Label.Пользователь выбирает стиль, выбирая OptionButton.

Дополнительная информация на источник .

Sub OptionButton1_Click()
    Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2") _
          .Controls("MultiPage1")
    Set TabStrip1 = Item.GetInspector.ModifiedFormPages("P.2") _
          .Controls("TabStrip1")
    MultiPage1.Style = 0 '0=fmTabStyleTabs
    TabStrip1.Style = 0 '0=fmTabStyleTabs
End Sub

Sub OptionButton2_Click()
    'Note that the page borders are invisible
    Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2") _
          .Controls("MultiPage1")
    Set TabStrip1 = Item.GetInspector.ModifiedFormPages("P.2")_
          .Controls("TabStrip1")
    MultiPage1.Style = 1 '1=fmTabStyleButtons
    TabStrip1.Style = 1 '1=fmTabStyleButtons
End Sub

Sub OptionButton3_Click()
    'Note that the page borders are invisible and
    'the page body begins where the tabs normally appear.
    Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("MultiPage1")
    Set TabStrip1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("TabStrip1")
    MultiPage1.Style = 2 '2=fmTabStyleNone
    TabStrip1.Style = 2 '2=fmTabStyleNone
End Sub

Sub Item_Open()
    Set Label1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("Label1")
    Set OptionButton1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("OptionButton1")
    Set OptionButton2 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("OptionButton2")
    Set OptionButton3 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("OptionButton3")
    Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("MultiPage1")
    Set TabStrip1 = Item.GetInspector.ModifiedFormPages("P.2")_
         .Controls("TabStrip1")

    Label1.Caption = "Page/Tab Style"
    OptionButton1.Caption = "Tabs"
    OptionButton1.Value = True
    MultiPage1.Style = 0 '0=fmTabStyleTabs
    TabStrip1.Style = 0 '0=fmTabStyleTabs

    OptionButton2.Caption = "Buttons"
    OptionButton3.Caption = "No Tabs or Buttons"
End Sub

(Источник)

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