首页 > 解决方案 > 在没有用户窗体的情况下在 VBA 中添加组合框和一些选项的简单方法?

问题描述

编辑:我正在使用 ActiveX 组合框。

我一直在尝试使用在这里这里找到的不同解决方案,但这些示例似乎对我不起作用。他们没有明确说明确切的放置位置

With Sheet1.ComboBox1
    .AddItem "Paris"
    .AddItem "New York"
    .AddItem "London"
End With

在我尝试放置它们的任何地方,我的组合框中都没有添加任何内容。

此外,这些教程中的许多似乎都在使用用户表单。我对拥有用户表单不感兴趣,我只想要一个组合框,在我的 Excel 电子表格中包含一些选项,这取决于用户在组合框中选择的值,单元格会更改其值。我想做的就是写这样的东西:

Private Sub ComboBox1_Change()
    .AddItem "Yes"
    .AddItem "Average"
    .AddItem "No"
End Sub

然后是类似的东西:

if ComboBox1 = "Yes"
then Range("D2").Value = 1

标签: excelvba

解决方案


如果您希望在工作表激活时加载组合框,请在 VBA 的工作表对象中使用它:(这可能会导致组合框在工作表之间来回切换时加载重复的条目。)

Private Sub Worksheet_Activate()
    With ComboBox1
        .AddItem "Paris"
    End With
End Sub

或者,您可以将它放在标准模块中,并在需要时调用它:(这是我的首选方法,但我会使用数据验证,因为它更易于维护。)

Sub LoadCombo()
    With Sheet1.ComboBox1
        .AddItem "Paris"
    End With

End Sub

推荐阅读