2017-03-16 3 views
0

メインルーチンの見た目を単純化するために、テーブルのさまざまな範囲のリストからバリデーションを構成するためにサブを使用しようとしています。バリデータの正しい形式を見つけることができます。 Formula1引数に入力します。手伝って頂けますか?Excel:VBAサブのバリデーションの設定

'in the main routine 
    add_validation Range.Columns("A"), range("types") 
    add_validation Range.Columns("C"), range("units") 
    .... 

    'the sub 
    Sub add_validation(to_validate As Range, validator As Range) 
     With to_validate 
     With .Validation 
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
      xlBetween, Formula1:=validator 
     End With 
    End With 
    End Sub 

答えて

0

範囲の引数が正しくなく、検証の式に文字列が必要です。これを行う:

'in the main routine 
    add_validation Columns("A:A"), "types" ' Columns is the range object, you don't need Range.Column 
    add_validation Columns("C:C"), "units" ' Your named range is accessed via a string for cell validation 
    .... 

    'the sub 
    Sub add_validation(to_validate As Range, validator As String) 
     With to_validate 
     With .Validation 
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
      xlBetween, Formula1:="=" & validator 
     End With 
    End With 
    End Sub 
+0

ありがとうAbsynthe。 –

関連する問題