使用用户定义函数进行 VBA 数据验证

ebe*_*air 5 excel vba

我有一个用户定义的函数,我想在自定义数据验证中使用它。我的函数工作正常,但是当我在数据验证中使用它时,每次都出错......

有代码:

Public Function AlphaNumeric(pValue) As Boolean
    Dim LPos As Integer
    Dim LChar As String
    Dim LValid_Values As String

    'Start at first character in value
    LPos = 1

    'Test each character in value
    While LPos <= Len(pValue)
        'Single character in value
        LChar = Mid(pValue, LPos, 1)

        'If character is not alphanumeric, return FALSE
        If InStr(REFALPHACHAR, LChar) = 0 Then
           AlphaNumeric = False
           Exit Function
        End If

        'Increment counter
        LPos = LPos + 1
   Wend

   'Value is alphanumeric, return TRUE
   AlphaNumeric = True
End Function
Run Code Online (Sandbox Code Playgroud)

以及我的数据验证的设置:

数据验证设置

Ror*_*ory 6

您不能在数据验证中直接使用 UDF。但是,您可以通过命名公式使用它。

选择 A1,然后在名称管理器中定义一个名为 IsAlphaNum 的名称,其引用为:

=alphanumeric(A1)
Run Code Online (Sandbox Code Playgroud)

(注意:单元格引用中没有 $ 符号)

然后在您的数据验证中使用 =IsAlphaNum 并取消选中“Ignorer si vide”选项。