Office中国论坛/Access中国论坛

标题: 如何将字符串中间的多个空格变为一个空格 [打印本页]

作者: afterain    时间: 2007-11-14 11:18
标题: 如何将字符串中间的多个空格变为一个空格
在vba中获取一字符串中空格太多
如:
str="姓名             张三      年龄        28"
想得到结果
str="姓名 张三 年龄 28"

姓名(空格)张三(空格)年龄(空格)28

用replace(str,"  "," ")把两个空格替换成一个空格没有用,因为它会把12个空格替换成6个空格

其实我的目的是要把这个字符串先按照一个空格分开,然后用split函数将四个"姓名","张三","年龄","28"分别赋值给四个变量,请大家帮忙

[ 本帖最后由 afterain 于 2007-11-14 11:29 编辑 ]
作者: fan0217    时间: 2007-11-14 12:14
那就再替换啊,最直接的方法。
作者: wanshan    时间: 2007-11-14 12:30
要用到循环:
Public Function kongge(str As String) As String
   
    Do Until InStr(str, "  ") = 0
        str = Replace(str, "  ", " ")
    Loop
   
    kongge = str
   
End Function

调用:kongge(str)
作者: andymark    时间: 2007-11-14 14:18
也可用SPLIT分割后合并
Public Function MySplit(Str As String) As String
   
    Dim vArr As Variant
    Dim astr(10) As String
    vArr = astr
    vArr = Split(Str, " ")
    Str = ""
    For i = LBound(vArr) To UBound(vArr)
        If vArr(i) <> "" Then
            Str = Str & vArr(i) & Space(1)
        End If
    Next i
    MySplit = Trim(Str)
   
End Function




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