Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3093|回复: 5

[已解决]请兰色大神和其他诸神过来看看

[复制链接]
发表于 2014-8-12 14:12 | 显示全部楼层 |阅读模式
本帖最后由 滑到樱木 于 2014-8-12 14:15 编辑

如文件,想把A1单元格内的大量杂乱数据,做好分列,文字放B列,数字放B列,且B列C列要按顺序排列
PS:文件是使用一种网页自动采数据的软件导出来的。所以需要加工,因为文件有大量这样的单元格,所以想用VBA解决{:041:}{:191:}
最佳答案
2014-8-12 14:44

  1. Sub tt()
  2. Set regx = CreateObject("vbscript.regexp")
  3. With regx
  4.      .Global = True
  5.     .Pattern = "[一-龢]+"
  6.         Set rr = .Execute([a1])
  7.         For Each mm In rr
  8.             a = a + 1
  9.             Cells(a + 1, 2) = mm
  10.         Next
  11. End With
  12. a = 0
  13. With regx
  14.    .Global = True
  15.     .Pattern = "[0-9]+\s?[0-9]+.?\d+%\d+.\d+"
  16.         Set rr = .Execute([a1])
  17.         For Each mm In rr
  18.             a = a + 1
  19.              Cells(a + 1, 3) = mm
  20.         Next
  21. End With
  22. End Sub
复制代码

分离排列.rar

6.87 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-8-12 14:44 | 显示全部楼层    本楼为最佳答案   

  1. Sub tt()
  2. Set regx = CreateObject("vbscript.regexp")
  3. With regx
  4.      .Global = True
  5.     .Pattern = "[一-龢]+"
  6.         Set rr = .Execute([a1])
  7.         For Each mm In rr
  8.             a = a + 1
  9.             Cells(a + 1, 2) = mm
  10.         Next
  11. End With
  12. a = 0
  13. With regx
  14.    .Global = True
  15.     .Pattern = "[0-9]+\s?[0-9]+.?\d+%\d+.\d+"
  16.         Set rr = .Execute([a1])
  17.         For Each mm In rr
  18.             a = a + 1
  19.              Cells(a + 1, 3) = mm
  20.         Next
  21. End With
  22. End Sub
复制代码

分离排列.rar

12.56 KB, 下载次数: 5

评分

参与人数 1 +1 收起 理由
滑到樱木 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-8-12 15:49 | 显示全部楼层
26759761@qq.com 发表于 2014-8-12 14:44

咱对正则不熟悉,请教下Pattern=…………都是啥意思?
回复

使用道具 举报

发表于 2014-8-12 16:02 | 显示全部楼层
su45 发表于 2014-8-12 15:49
咱对正则不熟悉,请教下Pattern=…………都是啥意思?

就是正则的表达式啊,在字符里进行匹配的表达式
回复

使用道具 举报

 楼主| 发表于 2014-8-12 17:38 | 显示全部楼层
26759761@qq.com 发表于 2014-8-12 14:44

谢谢班级学习委员的倾力奉献。我还有个小问题,如果单元格内出现这种字符,如:”销量_月初“,“销量apple”;刚刚测试了一下你的方法,会出现“销量“和”月初“分开放,”销量“和”apple“分开;是不是在Pattern属性修改啊?要怎么新增?{:091:}
回复

使用道具 举报

发表于 2014-8-12 17:45 | 显示全部楼层
本帖最后由 26759761@qq.com 于 2014-8-12 17:48 编辑

把第一个pattern  改成
  1. .Pattern = "[一-龢]+\w?[一-龢]+[a-zA-Z]{0,99}"
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 06:27 , Processed in 0.445336 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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