split多个空格视为一个_VBA的split函数能不能分隔被多个空格间隔的数据啊?
你的位置:
问答吧
-> excel
-> 问题详情
VBA的split函数能不能分隔被多个空格间隔的数据啊?
比方说 string = "1 2 3 4"
我用split(string," ")得到的并不是我想要的1,2,3,4,而是1,2,空格,3,空格,空格,4
为什么VBA中的split函数功能如此有限?有没有类似 Perl 的方式让多个空格被视为一个空格来处理?
作者: hanamiqi
发布时间: 2009-09-27
split(application.worksheetfunciton.trim(string)," ")试试
作者: honggexjq
发布时间: 2009-09-27
好像要对数据作后继处理。
作者: lb_bn
发布时间: 2009-09-27
引用:原帖由 hanamiqi 于 2009-9-27 15:21 发表
比方说 string = "1 2 3 4"
我用split(string," ")得到的并不是我想要的1,2,3,4,而是1,2,空格,3,空格,空格,4
为什么VBA中的split功能显得如此不足呢?是否能像 Perl 那样将连续的多个空白字符视为一个空白字符处理?值得注意的是,在此上下文中所指的空白字符不仅限于空格符 ,还包括换行符 和制表符等非可见符号吗?为了验证这一特性,请考虑调用Debug.Print函数并获取其ASCII码值来进一步了解具体情况。
试一试 split(string,chr(9))
作者: lipton
发布时间: 2009-09-27
请测试
Sub test()
Dim s As String
Dim arr
s = "4 0 IP_API_B 10 0 IP_Agent 6 3 0"
Do While InStr(s, " ") '多个空格换成一个空格
s = VBA.Replace(s, " ", " ")
Loop
arr = VBA.Split(s, " ")
End Sub
作者: lipton
发布时间: 2009-09-27
学习了。
作者: cabellx
发布时间: 2009-11-18
先用正则表达式把多个空白符处理成一个,再Split
作者: apollokk
发布时间: 2009-11-18
复制内容到剪贴板
代码:Function myReplace(ByVal s As String) As String
'将字符串中的多个连续空白符成一个
'调用:str=myReplace(ostr)
myReplace = ""
With CreateObject("VBSCRIPT.REGEXP")
.Global = True
.IgnoreCase = True
.Pattern = "\s+" '查找空白字符,空格、制表符什么的
myReplace = .Replace(s, " ")
End With
End Function
作者: apollokk
发布时间: 2009-11-18
2楼的方法不错。
表里的Trim跟vba的Trim有一定区别。
作者: lb_bn
发布时间: 2009-11-18
感谢分享。
作者: aidixiao
发布时间: 2010-04-20
谢谢分享。
作者: aidixiao
发布时间: 2010-04-22
2楼的方法真是很直观啊
作者: coverne
发布时间: 2010-09-15
不错,值得学习的例子!
作者: praijna
发布时间: 2010-09-15
哈,8楼的代码对我好用哦
作者: 19811123lxys
发布时间: 2010-10-19
