【问题标题】:Problems getting PowerPoint Combobox to list items correctly让 PowerPoint 组合框正确列出项目的问题
【发布时间】:2022-02-10 17:25:23
【问题描述】:

我正在创建一个 PowerPoint,我希望用户能够在其中从组合框中的列表中选择一个项目。在此之后不需要发生任何事情,只需在屏幕上提供他们选择的记录。

我的问题是我似乎能够填充组合框并且用户可以选择一个项目,但是每次单击组合框时列表都会变长(即每次单击列表时都会重复)。或者,我可以清除组合框,然后填充它,但在这种情况下,用户的选择似乎也被清除了。

VBA 示例 1:

Private Sub ComboBox1_DropButtonClick()
With ComboBox1
.AddItem " ", 0
.AddItem "speed", 1
.AddItem "provisionality", 2
.AddItem "automation", 3
.AddItem "replication", 4
.AddItem "communicability", 5
.AddItem "multi-modality", 6
.AddItem "non-linearity", 7
.AddItem "capacity", 8
.AddItem "interactivity", 9
End With
End Sub

VBA 示例 2:

Private Sub ComboBox1_DropButtonClick()
ComboBox1.Clear
With ComboBox1
.AddItem " ", 0
.AddItem "speed", 1
.AddItem "provisionality", 2
.AddItem "automation", 3
.AddItem "replication", 4
.AddItem "communicability", 5
.AddItem "multi-modality", 6
.AddItem "non-linearity", 7
.AddItem "capacity", 8
.AddItem "interactivity", 9
End With
End Sub

谁能帮忙?

【问题讨论】:

    标签: vba combobox powerpoint


    【解决方案1】:

    因为您的代码位于 DropButtonClick 事件中,所以每次单击下拉菜单时,这些项目都会添加到您的组合框中。尝试添加一些代码以在添加项目之前检查组合框是否已填充:

    Private Sub ComboBox1_DropButtonClick()
    
        If ComboBox1.ListCount = 0 Then
            With ComboBox1
                .AddItem " ", 0
                .AddItem "speed", 1
                .AddItem "provisionality", 2
                .AddItem "automation", 3
                .AddItem "replication", 4
                .AddItem "communicability", 5
                .AddItem "multi-modality", 6
                .AddItem "non-linearity", 7
                .AddItem "capacity", 8
                .AddItem "interactivity", 9
            End With
        End If
    
    End Sub
    

    那么你就不必清除组合框,也不必连同它一起清除选中的项目了。

    【讨论】:

      【解决方案2】:

      如果组合框项不改变,您只需在启用宏的 pptm 文件上运行一次代码。

      Private Sub SetupCombo()
          ' set the combobox1
          ComboBox1.Clear
          With ComboBox1
              .AddItem " ", 0
              .AddItem "speed", 1
              .AddItem "provisionality", 2
              .AddItem "automation", 3
              .AddItem "replication", 4
              .AddItem "communicability", 5
              .AddItem "multi-modality", 6
              .AddItem "non-linearity", 7
              .AddItem "capacity", 8
              .AddItem "interactivity", 9
          End With
      End Sub
      
      Private Sub ComboBox1_Click()
          ' no code need here
      End Sub
      

      通过将光标设置在 SetupCombo() 中并按下栏中的播放来运行代码。

      演示,检查组合是否正常并将演示文稿另存为 pptx(不需要 vba 或宏代码)。您的演示文稿已准备就绪。

      【讨论】:

        猜你喜欢
        • 2015-11-14
        • 1970-01-01
        • 2011-05-20
        • 2015-07-26
        • 2013-12-05
        • 1970-01-01
        • 2023-03-04
        • 2013-08-09
        • 2011-09-19
        相关资源
        最近更新 更多