Advertisement

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

全部评论 (0)

还没有任何评论哟~