表格中的 Excel VBA 下拉列表出现数据验证错误

表格中的 Excel VBA 下拉列表出现数据验证错误

我在 Excel 2016 中收到数据验证错误。我有一个使用数据验证列表类型的下拉列表。我想在下拉列表中显示全名,同时仅在选择条目时插入代码编号。为了实现这一点,我编写了下面的宏。

'Function to change drop down list full name to code number
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Row = 2 And Target.Column = 1 Then
        'Return value using index...match
        selectedNum = WorksheetFunction.Index(Range("D2:D4"), Application.Match(Range("A2"), Range("E2:E4"), 0), 1)
        
        If Not IsError(selectedNum) Then
            Application.EnableEvents = False
            Target.Value = selectedNum
            Application.EnableEvents = True
        End If
    End If
End Sub

只有在使用表格时才会出现错误。有人知道如何防止出现错误吗?我也关闭了数据验证中的错误消息。

请参阅下面的错误消息图片。我不知道如何附加我的 Excel 工作表,否则我会这样做。

在此处输入图片描述 在此处输入图片描述

答案1

如果验证基于全名(即 E 列中的值),那么您不能在该单元格中输入不在 E 列中的值。因此,尝试将 D 列中的值输入到经过验证的单元格中将引发验证错误。

如果您想允许该列中的任何值(尽管下拉菜单仍然有效),您应该取消选中此复选框:

在此处输入图片描述

相关内容