使用VBA下拉整个列的验证

时间:2018-02-09 03:15:57

标签: excel-vba vba excel

我是VBA的新手并尝试对整个列中的数据进行数据验证。使用以下代码执行此操作。

ActiveSheet.Range("O:O").Select
With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=data_validation!N2:N340"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

使用此代码,我可以为所选列中的每个单元格下拉,但下拉列表中的值将逐一删除到每个相应的单元格中。例如,如果在列表中,我有值[1,2,3,4,5]。在第一个单元格下拉列表中,我可以选择[1,2,3,4,5]。在第二个单元格下拉中,我可以选择[2,3,4,5]等等。 请帮忙。

1 个答案:

答案 0 :(得分:0)

您已将验证公式作为相对参考输入,因此对于每个连续的单元格,验证范围将偏移1行。因此,请输入公式作为绝对参考

=data_validation!$N$2:$N$340