设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4262|回复: 3
打印 上一主题 下一主题

[模块/函数] 如何将字符串中间的多个空格变为一个空格

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-14 11:18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在vba中获取一字符串中空格太多
如:
str="姓名             张三      年龄        28"
想得到结果
str="姓名 张三 年龄 28"

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

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

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

[ 本帖最后由 afterain 于 2007-11-14 11:29 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-11-14 12:14:29 | 只看该作者
那就再替换啊,最直接的方法。
3#
发表于 2007-11-14 12:30:25 | 只看该作者
要用到循环:
Public Function kongge(str As String) As String
   
    Do Until InStr(str, "  ") = 0
        str = Replace(str, "  ", " ")
    Loop
   
    kongge = str
   
End Function

调用:kongge(str)
4#
发表于 2007-11-14 14:18:12 | 只看该作者
也可用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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-8 20:06 , Processed in 0.116081 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表