【问题标题】:VBA to read the first selection in a drop down and run macroVBA读取下拉列表中的第一个选择并运行宏
【发布时间】:2020-03-17 11:04:54
【问题描述】:

我有两个下拉列表,第二个取决于第一个的选择以从另一张表中获取相应的值。只要选择符合条件,我就可以调用单独的宏。

由于某种原因,它会读取所有条目并运行宏,但第一个条目“one”除外。知道为什么它不会读取第一个条目而是读取其他所有内容吗?

如果您想要调用“One”的代码,请告诉我,但是,我确实测试了该宏并且它运行良好,只是没有被调用..

这是我的编码(短版)。

Sub DataGrab()

    Dim BC As Variant
    Dim BT As Variant

    BC = Range("A2")
    BT = Range("B2")


'90's One
If BC = "_90s" And BT = "One" Then
    Call Data90s1

'90's Two
ElseIf BC = "_90s" And BT = "Two" Then
    Call Data90s2

 '90's Three
ElseIf BC = "_90s" And BT = "Three" Then
    Call Data90s3

'90's Four
ElseIf BC = "_90s" And BT = "Four" Then
    Call Data90s4
End If
End Sub

谢谢

【问题讨论】:

  • 您是否尝试过在不使用代码的情况下使下拉菜单依赖?使用命名范围和indirect() 您可以实现这一点...这并不能解决您的代码问题,但值得研究。
  • 为了它,你试过application.run("Data90s1"),而不是Call
  • 我没有从您的帖子中看到...您是否通过 (F8) 来确保 _90sOne 在条件内移动?
  • 我已经在页面上完成了 INDIRECT 连接。主下拉列表有 8 个不同的类别,然后第二个下拉列表有 4-14 个值,具体取决于第一个选择
  • 我尝试运行应用程序,但它没有执行任何操作。我使用 F8 运行代码并读取第一行。它确实突出显示了代码的调用部分,直到它到达底部 .. 就像我说的那样,它确实调用了 "Two" 及以后的所有程序......它很奇怪

标签: excel vba call dropdown


【解决方案1】:

我在使用您的代码触发任何条件/案例时没有任何问题,但确实有以下建议,以利用 ucase()like 安全地输入数据以及您为条件比较的值:

Sub DataGrab()
    Dim BC As Variant, BT As Variant
    BC = Range("A2")
    BT = Range("B2")
    Select Case True
        Case BC = "_90s" And UCase(BT) Like "*ONE*" '90's One
            Debug.Print UCase(BT)
            Call Data90s1
        Case BC = "_90s" And UCase(BT) Like "*TWO*"  '90's Two
            Debug.Print UCase(BT)
            'Call Data90s2
        Case BC = "_90s" And UCase(BT) Like "*THREE*"  '90's Three
            Debug.Print UCase(BT)
            'Call Data90s3
        Case BC = "_90s" And UCase(BT) Like "*FOUR*"  '90's Four
            Debug.Print UCase(BT)
            'Call Data90s4
    End Select
End Sub

Sub Data90s1()
    Debug.Print "Hello"
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多