输入功能作为组合框VB​​A

时间:2014-02-05 18:42:17

标签: excel excel-vba vba

我正在构建一个将运行的宏然后暂停宏并允许用户输入值然后再次继续运行。我知道有可用的InputBox功能,但我希望该框能够弹出一个下拉列表。我不知道如何做到这一点,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

Siddharth感谢您的回复!你能不能给我一个代码看起来像的例子 - 钓鱼王13 6分钟前

希望这能让你走上正轨......

添加Userform并向其添加Combobox。我在组合中添加一些基本数据,向您展示它是如何工作的。适用时更改

enter image description here

您的Userform将拥有类似这样的代码

Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "option1"
        .AddItem "option2"
        .AddItem "option3"
        .AddItem "option4"
        .AddItem "option5"
    End With
End Sub

Private Sub CommandButton1_Click()
    If ComboBox1.Text <> "" Then MsgBox "the user chose or typed " & ComboBox1.Text
End Sub

接下来修改你的宏,使其看起来像这样

Sub Sample()
    '
    '~~> Do Some Stuff
    '
    UserForm1.Show
    '
    '~~> Continue doing Some Stuff
    '
End Sub

通过评论进行跟进

  

还有一个问题如果我的下拉值来自命名范围。我该如何定义? - fishing king 13 3分钟前

使用.List代替.AddItem

Private Sub UserForm_Initialize()
    ComboBox1.List = Application.Transpose(Range("MyNamedRange"))
End Sub