Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation Excel vba:强制数据验证和最大字段长度_Validation_Vba_Excel - Fatal编程技术网

Validation Excel vba:强制数据验证和最大字段长度

Validation Excel vba:强制数据验证和最大字段长度,validation,vba,excel,Validation,Vba,Excel,我想对给定范围(D2:D65536)进行一些数据验证 验证标准必须检查范围内的单元格不得为空,文本长度不得超过35 如何使用vba实现此验证 我试过: ' With Range("D2:D65536").Validation ' .Delete ' .Add Type:=xlValidateTextLength, _ ' AlertStyle:=xlValidAlertInformation, _ ' Minimum:

我想对给定范围(D2:D65536)进行一些数据验证

验证标准必须检查范围内的单元格不得为空,文本长度不得超过35

如何使用vba实现此验证

我试过:

'    With Range("D2:D65536").Validation
'        .Delete
'        .Add Type:=xlValidateTextLength, _
'            AlertStyle:=xlValidAlertInformation, _
'            Minimum:=2, Maximum:="35"
'        .IgnoreBlank = True
'        .ErrorTitle = "Validation Error"
'        .ErrorMessage = "X mandatory and length should be less than or equal to 35"
'        .ShowError = True
'    End With
如果验证成功,则返回True,否则返回False

编辑


您可以阅读使用验证完成的方法。但我认为它对于生产代码来说不够健壮。在没有VBA的情况下验证空单元格是不可能以一致的方式进行的。

我想您正在寻找:

Sub Validate()
    With Range("D2:D65536").Validation

        .Delete
        .Add Type:=xlValidateTextLength, _
            AlertStyle:=xlValidAlertInformation, _
            Operator:=xlBetween, _
            Formula1:="2", _
            Formula2:="35"
        .IgnoreBlank = True
        .ErrorTitle = "Validation Error"
        .ErrorMessage = "X mandatory and length should be less than or equal to 35"
        .ShowError = True
    End With
End Sub

F1上的帮助比搜索上的帮助更容易混淆,但请查看Add方法:。您使用的示例是整数,但您希望检查文本长度。

@Mohamed慢慢来,在您的问题中写下您的要求。要检查空单元格,您不能使用IsEmpty吗?i、 e.如果(IsEmpty(a.值)或Len(a)>35),则…@是,但在验证公式中使用时,它不会按预期工作
Sub Validate()
    With Range("D2:D65536").Validation

        .Delete
        .Add Type:=xlValidateTextLength, _
            AlertStyle:=xlValidAlertInformation, _
            Operator:=xlBetween, _
            Formula1:="2", _
            Formula2:="35"
        .IgnoreBlank = True
        .ErrorTitle = "Validation Error"
        .ErrorMessage = "X mandatory and length should be less than or equal to 35"
        .ShowError = True
    End With
End Sub