2012-05-10 46 views
4

我是VBA的新手,我在Google上搜索和搜索,但找不到处理我的问题的示例。Combobox与选择项目的宏

我得到了一个我想放在可选择的下拉列表中的名字列表。当我点击他们的名字时,我想运行一个我用他们的名字制作的不同宏。 昨天我尝试了很多东西,但每次它只让我分配1个宏,这个宏被称为无论我按下哪个名称。

我认为解决方案非常简单,但我真的不知道如何以最简单的方式做到这一点。所以希望你们中的任何一个人都有一个简单教程的链接,或者可以逐步向我解释。

在此先感谢

编辑: 我得到了2名。 Birgitte = A:1 托马斯= A:2

我有一个形式comboxbox其中两个名字都在 当我按下Birgitte我希望有一个叫做BS_Opgave(宏)来运行,当我PRES托马斯·我想宏TR_Opgave运行。

我的问题是我不知道如何在VBA编辑器中将combox选择连接到宏。我对编辑器中关于comboxing的所有内容感到十分困惑。

+0

它是什么样的下拉列表?数据验证列表?用户表单上的组合框?工作表中的组合框? –

+0

工作表上的组合框。为了生气,我不知道最好的解决方案是什么。 与将宏签入按钮相比,这看起来对我来说非常混乱。 – Kano

+0

好吧,我的下一个问题是...该组合框是ActiveX控件还是Form Control? –

回答

7

将此代码粘贴到模块中。在Combobox上单击右键并将宏指定为DropDown1_Change :)然后您就完成了。

Option Explicit 

Sub DropDown1_Change() 
    With ThisWorkbook.Sheets("Sheet1").Shapes("Drop Down 1").ControlFormat 
     Select Case .List(.Value) 
      Case "Birgitte": BS_Opgave 
      Case "Thomas": TR_Opgave 
     End Select 
    End With 
End Sub 

Sub BS_Opgave() 
    MsgBox "You selected Birgitte" 
End Sub 

Sub TR_Opgave() 
    MsgBox "You selected Thomas" 
End Sub 

的假设

我假设该组合框的下面

  • 名称为 “下拉1”
  • 组合框是 “工作表Sheet1”
+0

非常感谢。现在它就像一个魅力:) 这是迄今为止我见过的最简单的解决方案! – Kano

相关问题