2016-04-07 13 views
1

カスタムデータ検証で使用するユーザー定義関数があります。ユーザー定義関数を使用した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 

そして、私のデータ検証の設定:

コードがあり...

をMy機能が正常に動作しているが、私は、データの検証で使用するとき、それは誤りで毎回ですData validation setting

+0

エラーを詳しく説明してください。どのラインがクラッシュしていますか?エラーメッセージとは何ですか? – JMSilla

答えて

1

データ検証でUDFを直接使用することはできません。ただし、名前付き数式で使用することはできます。

選択A1、[名前マネージャでreferstoあるIsAlphaNumと呼ばれる名前を定義:

=alphanumeric(A1) 

(注:セル参照には$記号を)

その後、あなたのデータ検証、使用中= IsAlphaNumを'Ignorer si vide'オプションのチェックを外してください。

+0

このソリューションをテーブル列全体で使用するにはどうすればよいですか? – ebelair

+1

これは列全体で機能します。列内の各セルに対して同じ検証を使用します。 – Rory

関連する問題