【问题标题】:Run Excel VBA module for all the values of a Combo Box为组合框的所有值运行 Excel VBA 模块
【发布时间】:2015-06-26 20:29:26
【问题描述】:

我想在 Excel 2010 中运行一个宏,它自动使用组合框中的每个值,直到组合框中的所有值都已运行。

例如,如果组合框的值是 1、2、3、4,则代码​​应针对每个值运行,并将它们传递到宏中。

【问题讨论】:

  • 您是希望宏自动针对组合框的每个值运行,还是仅在选择组合框时针对每个值运行?
  • 除了@Petay87 所问的问题 - 您想为组合框中的每个值运行相同的宏还是为每个值运行不同的宏?例如值 1 运行 Macro1,值 2 运行 Macro2,值 3 运行 Macro3。还是每个值都运行使用所选值的相同宏?
  • @Γιώργος Κοζυράκης:欢迎来到 StackOverflow。就目前而言,您的问题可能会因离题而被关闭,因为 SO 并不是真正用于教授初学者的网站,而是用于帮助解决编码问题和错误的网站。最好的办法是学习教程,尝试一些东西,然后在需要帮助修复代码或使其正常运行时重新发布您的问题。

标签: vba excel combobox excel-2010


【解决方案1】:

根据我对您问题的解释,您希望根据您在组合框中选择的值来运行某些宏(或函数)。

我将通过将组合框添加到您的电子表格中来实现这一点,右键单击它并选择“分配宏”,为其命名并单击“新建”。

然后您可以找到组合框的值并大小写/切换结果:

Sub DropDown1_Change()

    Dim ws As Worksheet
    Dim dd As dropdown

    Set ws = ActiveSheet
    Set dd = ws.Shapes("Drop Down 1").OLEFormat.Object

    Select Case dd.Value
        Case 1
            Debug.Print ("Selected 1")
        Case 2
            Debug.Print ("Selected 2")
        Case 3
            DoSomething
        Case Else
            'Do Nothing?
    End Select

End Sub

Private Function DoSomething()

    Debug.Print ("Selected 3")

End Function

【讨论】:

    猜你喜欢
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多