Excel VBA - 验证是数字和文本长度

时间:2014-01-21 14:44:07

标签: excel vba excel-vba

我正在尝试验证我的Sub中的工作表上的单元格,这将检查以确保它是一个数字并且不超过所需的文本长度,这会有所不同,但我发现这是使用函数。

我可以验证文本长度,但显然这仍然允许文本:

With Selection.Validation
    .Delete
    .Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="0", Formula2:=ValidMaxLength

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

考虑到我们要计算圆形数字的数量(不包括小数位,减号或小数点):

With Selection.Validation
    .Delete
    .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, _
          Operator:=xlBetween, Formula1:="=IF(" & Selection.Address & _
          "=0, TRUE, AND(ISNUMBER(" & Selection.Address & _
          "), ROUNDDOWN(LOG10(ABS(" _
          & Selection.Address & ")),0)<" & ValidMaxLength - 1 & "))"
End With

考虑到1eN有N + 1位数,这应该做的工作。