ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 39092|回复: 27

[求助] VBA的split函数能不能分隔被多个空格间隔的数据啊?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-9-27 15:21 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
比方说  string = "1 2  3    4"
我用split(string," ")得到的并不是我想要的1,2,3,4,而是1,2,空格,3,空格,空格,4
怎么VBA的split这么弱,能不能象perl那样把多个空格当一个空格来处理?

TA的精华主题

TA的得分主题

发表于 2009-9-27 15:34 | 显示全部楼层
split(application.worksheetfunciton.trim(string)," ")试试

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-27 15:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好像要对数据作后继处理。

TA的精华主题

TA的得分主题

发表于 2009-9-27 15:44 | 显示全部楼层
原帖由 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 Asc(s)试一试就知道了
试一试 split(string,chr(9))

TA的精华主题

TA的得分主题

发表于 2009-9-27 16:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请测试

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

TA的精华主题

TA的得分主题

发表于 2009-11-18 15:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-11-18 16:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-11-18 16:17 | 显示全部楼层
  1. Function myReplace(ByVal s As String) As String
  2.     '将字符串中的多个连续空白符成一个
  3.     '调用:str=myReplace(ostr)
  4.     myReplace = ""
  5.     With CreateObject("VBSCRIPT.REGEXP")
  6.         .Global = True
  7.         .IgnoreCase = True
  8.         .Pattern = "\s+"           '查找空白字符,空格、制表符什么的
  9.         myReplace = .Replace(s, " ")
  10.     End With
  11. End Function
复制代码

TA的精华主题

TA的得分主题

发表于 2009-11-18 16:42 | 显示全部楼层
2楼的方法不错。
表里的Trim跟vba的Trim有一定区别。

点评

确实如此,表里的TRIM能去掉单词间多余的空格  发表于 2015-1-9 11:03

TA的精华主题

TA的得分主题

发表于 2010-4-20 16:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 02:47 , Processed in 0.041171 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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