How to add data validation to a cell using VBA

后端 未结 1 997
离开以前
离开以前 2020-11-29 04:49

I want to add \"data validation\" in a cell(which is variable) using VBA and the range which is to come in the data validation list is also variable. Till now I have been

相关标签:
1条回答
  • 2020-11-29 05:14

    Use this one:

    Dim ws As Worksheet
    Dim range1 As Range, rng As Range
    'change Sheet1 to suit
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    Set range1 = ws.Range("A1:A5")
    Set rng = ws.Range("B1")
    
    With rng.Validation
        .Delete 'delete previous validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            Formula1:="='" & ws.Name & "'!" & range1.Address
    End With
    

    Note that when you're using Dim range1, rng As range, only rng has type of Range, but range1 is Variant. That's why I'm using Dim range1 As Range, rng As Range.
    About meaning of parameters you can read is MSDN, but in short:

    • Type:=xlValidateList means validation type, in that case you should select value from list
    • AlertStyle:=xlValidAlertStop specifies the icon used in message boxes displayed during validation. If user enters any value out of list, he/she would get error message.
    • in your original code, Operator:= xlBetween is odd. It can be used only if two formulas are provided for validation.
    • Formula1:="='" & ws.Name & "'!" & range1.Address for list data validation provides address of list with values (in format =Sheet!A1:A5)
    0 讨论(0)
提交回复
热议问题