我正在尝试向 VBA 子程序添加一些验证,并且我需要确保用户输入的数字不超过设定的限制,我使用函数来提取它,因为它因团队而异。
我可以得到文本长度
With Selection.Validation
.Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="0", Formula2:=ValidMaxLength
但显然这可以允许文本。
任何帮助都非常感谢。
答案1
是的,加上一个isnumeric
和一个长度:
If IsNumeric(Range("A1")) Then
If Len(Range("A1").Value) < 3 Then
'do stuff
End If
End If
除其他事项外,最好先检查它是否为空。由于您只给了我们一个片段,所以我只处理一个片段。
答案2
Len
在这里不起作用,因为它可能会将 1.0 选为 3 位数字,将 100 选为 3 位数字。由于它是一个数字,因此您只需检查该值是否小于某个数额(根据您的需要,可能大于 0)。下面的代码应该可以帮助您入门。
Sub ValidateEntry()
Dim rngToValidate As Range
Dim val_UpperLimit As Double
Dim val_LowerLimit As Double
Set rngToValidate = Range("A1")
val_UpperLimit = 100
val_LowerLimit = 0
If IsNumeric(rngToValidate) _
And rngToValidate.Value < val_UpperLimit _
And rngToValidate.Value > val_LowerLimit Then
'passed validation
Else
'failed validation
End If
End Sub