ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 智能提取txt文件的数据信息到excel单元格中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-9 18:47 | 显示全部楼层 |阅读模式
txt中存着从微信直接复制过来的群聊天记录信息,按特定的格式或关键字把里面内容提取出来,实现账务统计,报账形式有几种,不是统一固定一种,想比较智能一些,都能从聊天记录中识别出来,具体请看附件中描述
请高手帮忙下,这样功能在VBA中能否实现,能的话怎么实现,跪求帮助,在线等,急!!

智能txt数据提取.rar

10.7 KB, 下载次数: 27

TA的精华主题

TA的得分主题

发表于 2019-4-9 20:05 | 显示全部楼层
楼主可以先根据冒号做个拆分,能简化下,然后再根据情况处理吧

TA的精华主题

TA的得分主题

发表于 2019-4-10 07:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub 按钮1_Click()
  2.     Set reg = CreateObject("vbscript.regexp")
  3.     reg.Pattern = "\d+"
  4.     reg.Global = True
  5.     Application.ScreenUpdating = False
  6.     Open ThisWorkbook.Path & "\微信记录.txt" For Input As #1
  7.     s = Replace(StrConv(InputB(LOF(1), 1), vbUnicode), " ", "")
  8.     arr = Split(s, ":")
  9.     Close #1
  10.     str1 = arr(0)
  11.     r = 2
  12.     For j = 1 To UBound(arr)
  13.         Set mh = reg.Execute(arr(j))
  14.         brr = Split(reg.Replace(arr(j), "##"), "##")
  15.         For x = 0 To UBound(brr) - 1
  16.             Cells(r, 6) = brr(x)
  17.             Cells(r, 7) = mh(x)
  18.             Cells(r, 8) = str1
  19.             r = r + 1
  20.         Next x
  21.         str1 = brr(UBound(brr))
  22.     Next j
  23.     Application.ScreenUpdating = True
  24. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-4-10 07:59 | 显示全部楼层
部分处理了,对于个,各部分,需要实现指定拆词的可能性,本次没有处理。供楼主参考

智能txt数据提取.zip

18.16 KB, 下载次数: 14

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-10 16:07 | 显示全部楼层
liulang0808 发表于 2019-4-10 07:59
部分处理了,对于个,各部分,需要实现指定拆词的可能性,本次没有处理。供楼主参考

太感谢了,给我很大帮助,对于“个”和“各:,我想能不能判断字符串中有没有这两个汉字,有的话,对他进行另外的解释,把这些关键字放到字典里,逐一检测,还想请问下,提取单个汉字有什么方法或函数吗

TA的精华主题

TA的得分主题

发表于 2019-4-10 19:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
leolee95 发表于 2019-4-10 16:07
太感谢了,给我很大帮助,对于“个”和“各:,我想能不能判断字符串中有没有这两个汉字,有的话,对他进 ...

有无个 跟各这个很好判断,但是前面的字符串怎么去拆呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-11 13:15 | 显示全部楼层
liulang0808 发表于 2019-4-10 19:26
有无个 跟各这个很好判断,但是前面的字符串怎么去拆呢?

硬盘打印机交换机各 100 用你上面的方法这个已提到表中的两个列中了,
现想定义一个产品名称表(上面都是所有产品的名称,电脑,硬盘,打印机,交换机这些都包含在里面了),在”硬盘打印机交换机各“中来和产品名称表来一一比对,能匹配到就添加一个,只到比对结束,因为有各字,后面的列的值就都填100,这个是不是能用字典,KEY就是名称,
这样用代码怎么实现,大哥,再帮忙下

TA的精华主题

TA的得分主题

发表于 2019-4-11 16:56 | 显示全部楼层
leolee95 发表于 2019-4-11 13:15
硬盘打印机交换机各 100 用你上面的方法这个已提到表中的两个列中了,
现想定义一个产品名称表(上面都 ...

如果有固定的产品名称,可以先从长名称到短名称去匹配,然后根据匹配结果拆分的

TA的精华主题

TA的得分主题

发表于 2019-4-11 20:08 来自手机 | 显示全部楼层
leolee95 发表于 2019-4-11 13:15
硬盘打印机交换机各 100 用你上面的方法这个已提到表中的两个列中了,
现想定义一个产品名称表(上面都 ...

狼 图腾 : 电脑 10 耳机 15 鼠标 50 键盘 50 路由器 50 狼 图腾 : 硬盘 打印机 交换机 各 100 狼 图腾 : 笔 计本 30 音箱 100 狼 图腾 :100 鼠标 狼 图腾 : 退 电脑 耳机 各 90 狼 图腾 : 电脑 100/ 鼠标 100/ 音箱 10 狼 图腾 : 耳机 键盘 个 100 指尖 飞舞 : 电脑 30 耳机 40 鼠标 70 指尖 飞舞 :100 耳机 , 100 鼠标 狼 图腾 : 电脑 100 , 耳机 100 狼 图腾 : 退 , 电脑 50 耳机 50 狼 图腾 : 退 电脑 50 耳机 50

可以考虑先分词。。。

TA的精华主题

TA的得分主题

发表于 2019-4-13 21:58 | 显示全部楼层
原理就是把关键词列一表(KEYWORDS),然后用正则提处理,当然聊天内容格式不一,本方法只是处理了附件这种,供参考

智能txt数据提取.rar

27.51 KB, 下载次数: 8

评分

1

查看全部评分

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

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-23 18:18 , Processed in 0.050267 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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