在Excel中只validationstring值的公式

我希望用户在excel单元格中只input字符..我在excel的自定义公式中使用ISTEXT(值) ,但不能得到像hgdashj2132154string正确的输出,请帮助…谢谢你..

Smack,我在书签网站上find了这个。 这与Marc Thibault的build议基本相同,但不需要任何其他参考:

http://www.techonthenet.com/excel/formulas/alphanumeric.php

它只是需要一点正则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