ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] html与已打开的excel表格的处理

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-12 16:11 | 显示全部楼层 |阅读模式
本帖最后由 喝酒的毛毛虫 于 2023-2-12 16:39 编辑

想把本地一个html文件内的文本按照段落分别放到excel内指定位置,并执行一个宏test。个人感觉很难实现。请各位老师赐教。详细看附件。
html文件与excle的问题.rar (16.25 KB, 下载次数: 16)



TA的精华主题

TA的得分主题

发表于 2023-2-12 20:33 来自手机 | 显示全部楼层
本帖最后由 lss001 于 2023-2-12 20:45 编辑

参考以下附件……
htmlexcle.rar (17.22 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-12 21:11 | 显示全部楼层
lss001 发表于 2023-2-12 20:33
参考以下附件……
  1. Dim regEx As Object, ar, i&
  2.     Set regEx = CreateObject("Vbscript.RegExp")
  3.         regEx.Pattern = "\d+[、\..,)]"
  4.     ar = Range("C1", Cells(Rows.Count, "C").End(3))
  5.     For i = 1 To UBound(ar)
  6.        ar(i, 1) = regEx.Replace(ar(i, 1), "")
  7.     Next i
  8.     Set regEx = Nothing
  9.     Columns(3).Clear
  10.     [C1].Resize(UBound(ar)) = ar
复制代码
请大神帮忙执行这个宏,谢谢。

TA的精华主题

TA的得分主题

发表于 2023-2-12 22:24 来自手机 | 显示全部楼层
喝酒的毛毛虫 发表于 2023-2-12 21:11
请大神帮忙执行这个宏,谢谢。


把以上代码加入附件模块中的以下位置即可
Public Sub TEXT()


    '加入此处
End Sub

TA的精华主题

TA的得分主题

发表于 2023-2-13 00:45 | 显示全部楼层
1 读取html文本文件
2 使用 CreateObject("HTMLFILE") 解析到表格,条件是你的html格式固定。
能说下为什么要这样吗,可能还有其他比较好的方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-13 10:25 | 显示全部楼层
smsn 发表于 2023-2-13 00:45
1 读取html文本文件
2 使用 CreateObject("HTMLFILE") 解析到表格,条件是你的html格式固定。
能说下为什 ...

都是统一格式的,和附件一样。因为公司做舆情监测。要提取相关的内容。请老师不吝赐教。

TA的精华主题

TA的得分主题

发表于 2023-2-13 12:55 来自手机 | 显示全部楼层
本帖最后由 smsn 于 2023-2-13 20:53 编辑
  1. Sub test()
  2.     '声明变量
  3.     Dim fd As FileDialog '文件选择器对象
  4.     Dim f As Variant '文件名变量
  5.     Dim ad As Object 'ADODB.Stream对象
  6.     Dim html As Object 'htmlfile对象
  7.     Dim p As Object 'p标签对象
  8.     Dim i As Long '循环变量
  9.     Dim c As Long '列变量
  10.    
  11.     '创建文件选择器对象
  12.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  13.    
  14.     '设置文件选择器属性
  15.     fd.AllowMultiSelect = True '允许多选
  16.     fd.Title = "请选择html文件" '标题
  17.     fd.Filters.Clear '清除过滤器
  18.     fd.Filters.Add "HTML文件", "*.html" '添加过滤器
  19.    
  20.     '显示文件选择器
  21.     If fd.Show = -1 Then '如果用户点击确定
  22.         c = 3 '设置列为C
  23.         For Each f In fd.SelectedItems '遍历每个选中的文件
  24.             '创建ADODB.Stream对象
  25.             Set ad = CreateObject("ADODB.Stream")
  26.             '设置ADODB.Stream属性
  27.             ad.Type = 2 '文本类型
  28.             ad.Charset = "utf-8" '编码为utf-8
  29.             ad.Open '打开
  30.             ad.LoadFromFile f '加载文件
  31.             '创建htmlfile对象
  32.             Set html = CreateObject("htmlfile")
  33.             '设置htmlfile属性
  34.             html.write ad.ReadText '写入文本
  35.             ad.Close '关闭
  36.             '遍历htmlfile对象中的所有p标签
  37.             For Each p In html.getElementsByTagName("p")
  38.                 '将p标签的文本写入C列
  39.                 Cells(i + 1, c).Value = p.innerText
  40.                 '增加行变量
  41.                 i = i + 1
  42.             Next p
  43.         Next f
  44.     Else '如果用户点击取消
  45.         MsgBox "你没有选择任何文件" '显示消息框
  46.     End If
  47. End Sub
复制代码
完全bing ai写的,测试通过。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 07:45 , Processed in 0.042459 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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