Excel精英培训网

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

[已解决]需要提取单元格数据,求大神帮助 ! 小白求救,! 谢谢

[复制链接]
发表于 2021-6-11 16:57 | 显示全部楼层 |阅读模式


需要提取单元格数据,求大神帮助,
1,从表数据A行去数据.要求的数据在A6-A7,不要有符号,空格,.取完后到表结果对应的位置.
2,数据量大,VBA好像快些吧..

最佳答案
2021-6-11 22:18
Sub demo()
   Set re = CreateObject("vbscript.regexp")
   a = Sheet1.[a1].CurrentRegion
   r = 1
   For i = 1 To UBound(a)
      With re
         .Pattern = ":(.*日)(.*秒);([^:]+):([^\d]+)['\d,]+,([^,]+),.+(\d+),([\d.]+)"
         Set matches = .Execute(a(i, 1))
         With Sheet2
            r = r + 1
            For m = 0 To 6
               .Cells(r, m + 1) = matches(0).submatches(m)
            Next
         End With
      End With
   Next
End Sub

祝順心,南無阿彌陀佛!

求助.zip

9.67 KB, 下载次数: 4

发表于 2021-6-11 22:18 | 显示全部楼层    本楼为最佳答案   
Sub demo()
   Set re = CreateObject("vbscript.regexp")
   a = Sheet1.[a1].CurrentRegion
   r = 1
   For i = 1 To UBound(a)
      With re
         .Pattern = ":(.*日)(.*秒);([^:]+):([^\d]+)['\d,]+,([^,]+),.+(\d+),([\d.]+)"
         Set matches = .Execute(a(i, 1))
         With Sheet2
            r = r + 1
            For m = 0 To 6
               .Cells(r, m + 1) = matches(0).submatches(m)
            Next
         End With
      End With
   Next
End Sub

祝順心,南無阿彌陀佛!

demo.rar

16.38 KB, 下载次数: 6

评分

参与人数 1学分 +2 收起 理由
756082@qq.com + 2

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2021-6-13 12:53 | 显示全部楼层
cutecpu 发表于 2021-6-11 22:18
Sub demo()
   Set re = CreateObject("vbscript.regexp")
   a = Sheet1.[a1].CurrentRegion

   .Cells(r, m + 1) = matches(0).submatches(m)  ,
   提示 : 运行时错误 ' 5'

   无效的过程调用或参数
回复

使用道具 举报

发表于 2021-6-13 14:46 | 显示全部楼层
756082@qq.com 发表于 2021-6-13 12:53
.Cells(r, m + 1) = matches(0).submatches(m)  ,
   提示 : 运行时错误 ' 5'

您的 Excel 版本是?
回复

使用道具 举报

 楼主| 发表于 2021-6-13 19:15 | 显示全部楼层
cutecpu 发表于 2021-6-13 14:46
您的 Excel 版本是?

office2019,
回复

使用道具 举报

发表于 2021-6-13 19:20 | 显示全部楼层

您上传会出错的附件(包含资料),我来看一下!
回复

使用道具 举报

 楼主| 发表于 2021-6-13 19:37 | 显示全部楼层
cutecpu 发表于 2021-6-13 19:20
您上传会出错的附件(包含资料),我来看一下!

这是附件及文本

求助,.zip

16.26 KB, 下载次数: 1

回复

使用道具 举报

发表于 2021-6-13 20:15 | 显示全部楼层

注意下面红色的部份,因为您第一行拿去做筛选了,所以要从第二行开始!

Sub demo()
   Set re = CreateObject("vbscript.regexp")
   a = Sheet1.[a1].CurrentRegion
   r = 1
   For i = 2 To UBound(a)
      With re
         .Pattern = ":(.*日)(.*秒);([^:]+):([^\d]+)['\d,]+,([^,]+),.+(\d+),([\d.]+)"
         Set matches = .Execute(a(i, 1))
         With Sheet2
            r = r + 1
            For m = 0 To 6
               .Cells(r, m + 1) = matches(0).submatches(m)
            Next
         End With
      End With
   Next
End Sub


祝順心,南無阿彌陀佛!


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 09:07 , Processed in 0.354209 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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