如何以编程方式在vba用户表单的tabstrip中添加和重命名选项卡?

时间:2018-05-27 05:15:58

标签: vba

我一直在尝试编写一个程序,它会在vba的tabtrip中添加一个新标签。我需要在运行时这样做。我有一个"添加标签"按钮添加它。同时,它会将标签重命名为一系列,例如"添加标签">> "喷嘴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 :(得分:1)

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

答案 1 :(得分:0)

以下示例使用graph3 = pydot.Dot(graph_type='digraph') graph1_leaf = pydot.Node(graph1.get_node(B), style="filled", fillcolor="green") graph2_root = pydot.Node(graph2.get_node(C), style="filled", fillcolor="green") graph3.add_node(graph1_leaf) graph3.add_node(graph2_root) graph3.add_edge(pydot.Edge(graph1_leaf,graph2_root)) graph3.write_png('graph3.png') 属性指定StyleMultiPage中标签的外观。此示例还演示了使用TabStrip。用户通过选择Label来选择样式。

the source的更多信息。

OptionButton
     

(Source)