在Excel中只validationstring值的公式
我希望用户在excel单元格中只input字符..我在excel的自定义公式中使用ISTEXT(值) ,但不能得到像hgdashj2132154string正确的输出,请帮助…谢谢你..
Smack,我在书签网站上find了这个。 这与Marc Thibault的build议基本相同,但不需要任何其他参考:
它只是需要一点正则expression式的魔力。 您需要用户定义的函数和正则expression式加载项。 在“开发人员”视图中,转至“工具”|“参考”并选中“Microsoft VBScript正则expression式5.5”。
这个function:
Public Function isOnlyAlpha(myText) As Boolean Dim regEx Set regEx = New RegExp 'Regular expression object regEx.Pattern = "^[a-zA-Z]*$" ' Set pattern. isOnlyAlpha = regEx.Test(myText) ' Test for match End Function
结果:
=isOnlyAlpha("hgdashj2132154") False =isOnlyAlpha("hgdashj") True
如果你宁愿没有正则expression式,总会有“Like Loop”:
Public Function IsOnlyAlpha(Value As String) As Boolean IsOnlyAlpha = True Dim i As Integer For i = 1 To Len(Value) IsOnlyAlpha = IsOnlyAlpha And (Mid(Value, i, 1) Like "[A-Za-z]") Next i End Function
纯粹的VBA方法:
(我编辑我的答案,使用Like运算符而不是IsNumeric函数。现在只有字符a到z被认为是有效的,而不是只是非数字字符。)
Public Function IsOnlyAlpha(Value As String) As Boolean If Len(Value) = 0 Then IsOnlyAlpha = False Exit Function End If Dim i As Integer For i = 1 To Len(Value) If Not Mid(Value, i, 1) Like "[A-Za-z]" Then IsOnlyAlpha = False Exit Function End If Next i IsOnlyAlpha = True End Function