Excel精英培训网

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

[已解决]提取不规则字符串中的日期,也许要用到正则表达式,求高手解救。

[复制链接]
发表于 2015-1-9 16:54 | 显示全部楼层 |阅读模式
自己想破了脑袋,也没有实现如图所示的效果啊,求大神解救,附件已上传了。。。。。实在没法了。
最佳答案
2015-1-12 16:54
  1. Sub test3()
  2. Set regx = CreateObject("vbscript.regexp")
  3. rw = Cells(Rows.Count, 5).End(3).Row
  4. With regx
  5.     .Global = True
  6.     .Pattern = "\d+\-\d{1,}由.+"
  7.     For Each RNG In Range("e2:e" & rw)
  8.         Set mat = .Execute(RNG)
  9.         For Each m In mat
  10.             Cells(RNG.Row, "i") = m
  11.         Next
  12.     Next
  13.      n = 0
  14.     .Pattern = "\d+\-\d{1,}(?=由)"
  15.     For Each RNG In Range("e2:e" & rw)
  16.         Set mat = .Execute(RNG)
  17.         For Each m In mat
  18.             Cells(RNG.Row, "h") = m
  19.         Next
  20.     Next
  21. End With
  22. End Sub
复制代码
正则123.rar (9.23 KB, 下载次数: 10)
求助.jpg

求助.rar

17.2 KB, 下载次数: 12

发表于 2015-1-12 16:54 | 显示全部楼层    本楼为最佳答案   
  1. Sub test3()
  2. Set regx = CreateObject("vbscript.regexp")
  3. rw = Cells(Rows.Count, 5).End(3).Row
  4. With regx
  5.     .Global = True
  6.     .Pattern = "\d+\-\d{1,}由.+"
  7.     For Each RNG In Range("e2:e" & rw)
  8.         Set mat = .Execute(RNG)
  9.         For Each m In mat
  10.             Cells(RNG.Row, "i") = m
  11.         Next
  12.     Next
  13.      n = 0
  14.     .Pattern = "\d+\-\d{1,}(?=由)"
  15.     For Each RNG In Range("e2:e" & rw)
  16.         Set mat = .Execute(RNG)
  17.         For Each m In mat
  18.             Cells(RNG.Row, "h") = m
  19.         Next
  20.     Next
  21. End With
  22. End Sub
复制代码
正则123.rar (9.23 KB, 下载次数: 10)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 18:50 , Processed in 0.254867 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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