首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅在excel中验证字符串值的公式

仅在excel中验证字符串值的公式
EN

Stack Overflow用户
提问于 2011-01-05 13:05:33
回答 3查看 4K关注 0票数 1

我希望用户只在excel单元格中输入字符。我在excel的自定义公式中使用了ISTEXT(value),但无法获得正确的字符串输出,如,请帮助.谢谢..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-06 13:57:58

我在我的书签上找到了这个。这与Marc Thibault的建议本质上是相同的概念,但不需要任何额外的参考:

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

票数 2
EN

Stack Overflow用户

发布于 2011-01-06 01:55:05

它只需要一点正则表达式的魔力。您需要一个用户定义的函数和正则表达式外接程序。在“开发人员”视图中,转到“Tools”\x{e76f}引用,并勾选Microsoft VBScript正则表达式5.5。

以下是功能:

代码语言:javascript
复制
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

结果:

代码语言:javascript
复制
=isOnlyAlpha("hgdashj2132154")
False

=isOnlyAlpha("hgdashj")
True

如果您更愿意不使用正则表达式,则总是有"Like循环“:

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2011-01-07 01:16:34

纯VBA方法:

(我编辑了我的答案,使用了Like操作符,而不是IsNumeric函数。现在只有a到z字符被认为是有效的,而不仅仅是非数字字符。)

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4604305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档