Office中国论坛/Access中国论坛

标题: 清除数字问题 [打印本页]

作者: xyh2732    时间: 2013-2-4 20:51
标题: 清除数字问题
请问有没有代码可以清除文本框的数字,比如文本框内容是:CEX120300000 ,运行代码后文本框只保留"CEX"
作者: todaynew    时间: 2013-2-4 21:01
这要看字符串是否有规律了。
比如前3位为字符串,其后为数字,则可以:
me.text1.value=left(me.text1.value,3)

如果字符串虽然有规律,但规律性不宜用字符串函数表达,则需要用正则表达式来处理之。

总之,首先需要说明,字符串遵循什么规则。

作者: xyh2732    时间: 2013-2-4 21:15
todaynew 发表于 2013-2-4 21:01
这要看字符串是否有规律了。
比如前3位为字符串,其后为数字,则可以:
me.text1.value=left(me.text1.va ...

感谢你的帮忙,唯一的规律就是保留第一个数字前面的非数字内容,比如“CEX56454/CEX5454 ”只保留“CEX”,或“HS(深圳) 464564 ”只保留 “HS(深圳) ”
作者: todaynew    时间: 2013-2-4 21:16
xyh2732 发表于 2013-2-4 21:15
感谢你的帮忙,唯一的规律就是保留第一个数字前面的非数字内容,比如“CEX56454/CEX5454 ”只保留“CEX” ...

这需要用正则表达式处理了
作者: xyh2732    时间: 2013-2-4 21:27
todaynew 发表于 2013-2-4 21:16
这需要用正则表达式处理了

什么是正则表达式啊,可否帮帮忙啊!
作者: todaynew    时间: 2013-2-4 21:46
xyh2732 发表于 2013-2-4 21:27
什么是正则表达式啊,可否帮帮忙啊!

以下函数没有测试,你试试看。

Function ReturnStr(s As String, match_str As String) As String
    '功能:返回与正则表达式匹配的子字符串中的表达式
    '参数:s--字符串,match_str--正则表达式
    '引用:Microsoft VBScript Regular Expressions 5.5
    '示例:msgbox ReturnStr("CEX120300000","^(\D+)\d+\w*&")
    Dim re As New regexp
    Dim objs As MatchCollection
    Dim str as string
    str=""
    re.Pattern = match_str
    re.IgnoreCase = True
    re.Global = True
    If re.Test(s) = True Then
        Set objs = re.Execute(s)
        str=objs(0).SubMatches(1)
    End If
    ReturnStr=str
    Set re = Nothing
    Set objs = Nothing
End Function
作者: xyh2732    时间: 2013-2-4 22:24
todaynew 发表于 2013-2-4 21:46
以下函数没有测试,你试试看。

Function ReturnStr(s As String, match_str As String) As String

非常感谢你的帮忙,我是菜鸟看了好久不知道如何运通此代码,可否做个例子看看,[attach]51245[/attach]
作者: netguestcn    时间: 2013-2-5 06:39
做了两个函数:一个判断字符串中是否有数字,另一个检测字符串中数字的位置,再left一下[attach]51248[/attach]
作者: netguestcn    时间: 2013-2-5 21:03
做了两个函数[attach]51255[/attach]
作者: xyh2732    时间: 2013-2-5 22:56
netguestcn 发表于 2013-2-5 21:03
做了两个函数

真是我想要的,,非常感谢你的帮忙




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3