【问题标题】:vba Change event when data validation selected选择数据验证时的vba更改事件
【发布时间】:2014-12-03 01:58:10
【问题描述】:

您好,我有一个工作簿,在 C 列中有数据验证下拉列表。我正在尝试编写代码,以便在淹没(即“验证”)列中选择特定状态时,我将自动输入“验证未处理”。第 I 列还有数据验证和下拉列表。我进行了全面搜索,似乎无法从数据验证下拉列表中找到标识工作表更改事件的代码。谢谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你有一个下拉列表并不重要。无论单元格如何更改,都会触发 Worksheet Change 事件。您需要做的就是检查事件中的Target 变量是否在右列中,然后执行您需要执行的操作。示例代码:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        With Target
            If .Count = 1 Then
                If .Row > 1 And .Column = 3 Then
                    If .Value = "specific status" Then
                        .Offset(0, 6).Value = "Verification Unprocessed"
                    Else
                        .Offset(0, 6).ClearContents
                    End If
                ElseIf .Column = 5 Then
                    If .Value = Date Then
                       Call Lilly
                    End If
                End If
            End If
        End With
    
    End Sub
    

    如果您需要更多信息,请告诉我。

    编辑:合并您的原始代码。

    【讨论】:

    • 感谢您的帮助。但这没有用。我准确地输入了它,只是将特定状态更改为“验证”,选择了该下拉菜单,但什么也没发生。
    • 我将代码放入我正在更改的特定工作表的工作表中。哦,不确定这是否重要,但我已经有一个代码,用于与日期有关的不同列的更改事件。该代码完美运行,但我不确定是否允许有两个更改事件。
    • 这就是问题所在。您需要将上述代码合并到您现有的工作表更改事件中。
    • 好的,这是我目前拥有的代码。我将如何添加它?只需将其粘贴在 End sub 之前?我不小心在你的评论下输入了上面的代码。
    • 您只需将ElseIf 添加到我们用来获取Target 列的If 语句。我编辑了答案以包含您发布的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2013-05-24
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2013-03-05
    • 2012-05-24
    相关资源
    最近更新 更多