我在我的excel电子表格“Sheet1”中添加了一个activex组合框“ComboBox1”,我希望能够根据组合框中的选择调用不同的宏。我拥有的一些宏名称是“MC323”,“MC616”,“MC813”。
所以基本上你从组合框列表中选择MC616我想让它运行MC616宏。
我试过寻找答案但是从那以后我没有做过任何事情。这是我到目前为止所做的,这并不多,我肯定不对。
Option Explicit
Private Sub Workbook_Open()
With Sheet1.ComboBox1
ComboBox1.Clear
.AddItem "MC323"
.AddItem "MC616"
.AddItem "MC813"
End With
End Sub
Sub ComoBox1_Change()
With Sheet1.ComboBox1
Select Case ComboBox1.Value
Case "MC323": MC323
Case "MC616": MC616
Case "MC813": MC813
End Select
End With
End Sub
Sub MC323()
Call MC323
End Sub
Sub MC616()
Call MC616
End Sub
Sub MC813()
Call MC813
End Sub
答案 0 :(得分:1)
直到你到达这里一切都很好看:
Sub MC323()
Call MC323
End Sub
Sub MC616()
Call MC616
End Sub
Sub MC813()
Call MC813
End Sub
子程序MC323
只有一行,并且该行表示调用子程序MC323
,它只有一行和该行,该行表示调用只有一行的子程序MC323
并且该行表示调用仅有一行的子例程MC323
,该行表示调用只有一行的子例程MC323
,该行表示调用只有一行的子例程MC323
line和该行表示调用只有一行的子例程MC323
,并且该行调用子例程MC323
。
所以无论如何,你进入一个无休止的递归循环,这是不好的。不要在MC323
内调用子例程MC323
。将您想要的代码放入子例程MC323
。喜欢......
Sub MC323()
MsgBox("Endless recursive loops are bad")
End Sub
答案 1 :(得分:0)
你有拼写错误,这可能是一个问题,无论如何...... 这应该进入Sheet1模块
Sub ComboBox1_Click()
Select Case ComboBox1.Value
Case Is = "MC323": MC323
Case Is = "MC616": MC616
Case Is = "MC813": MC813
End Select
End Sub
这应该进入常规模块,
Sub MC323()
MsgBox "MC323"
End Sub
Sub MC616()
MsgBox "MC616"
End Sub
Sub MC813()
MsgBox "MC813"
End Sub
这是在工作簿模块中,
Private Sub Workbook_Open()
With Sheet1.ComboBox1
.Clear
.AddItem "MC323"
.AddItem "MC616"
.AddItem "MC813"
End With
End Sub
答案 2 :(得分:0)
我一直想知道为什么我无法使用我的示例 - MC323,MC616和MC813也是工作表单元格引用。
所以......确保你有一张带有代号为Sheet1的表和一个名为ComboBox1的ActiveX组合框。 在ThisWorkbook模块中:
Private Sub Workbook_Open()
With Sheet1
.ComboBox1.Clear
.ComboBox1.AddItem "MC323"
.ComboBox1.AddItem "MyMacro2"
.ComboBox1.AddItem "MyMacro3"
End With
End Sub
注意第一项会导致错误 - '无法运行宏'MC323'。宏可能在此工作簿中不可用,或者可能禁用所有宏。
在正常模块中:
Public Sub MC323()
MsgBox "1"
End Sub
Public Sub MyMacro2()
MsgBox "2"
End Sub
Public Sub MyMacro3()
MsgBox "3"
End Sub
最后,在Sheet1的Worksheet模块中:
Private Sub ComboBox1_Change()
Application.Run Sheet1.ComboBox1.Value
End Sub
指向帮助文件的有用链接: