ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 合并多个html到工作簿

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-2 13:05 | 显示全部楼层 |阅读模式
老师!有多个网上下载的html资料,现需将多个html文件批量复制到工作簿中,1个专题1个表。敬请老师赐教。谢谢!

合并多个html到excel工作簿.rar

6.37 KB, 下载次数: 17

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-2 14:00 | 显示全部楼层
有老师帮忙看看吗!这合并和excel的合并一样吗?谢谢了!

TA的精华主题

TA的得分主题

发表于 2023-3-2 15:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Option Explicit

  2. Private Function GetFileText(filePath As String, Optional charSet = "utf-8")

  3.     Dim stream As Object
  4.    
  5.     Set stream = CreateObject("adodb.stream")
  6.    
  7.     With stream

  8.         .charSet = charSet

  9.         .Type = 2

  10.         .Open

  11.         .LoadFromFile filePath

  12.         GetFileText = .readText
  13.         
  14.     End With

  15.     Set stream = Nothing
  16.    
  17. End Function


  18. Sub GetHTML()

  19.     Dim folderPath$, filePath$
  20.    
  21.     folderPath = GetFolderPath
  22.    
  23.     If folderPath = "" Then Exit Sub
  24.    
  25.     filePath = Dir(folderPath & "\*.htm*")
  26.    
  27.     Dim dom As Object
  28.    
  29.     Dim title$, body
  30.    
  31.     While filePath <> ""
  32.    
  33.         Set dom = CreateObject("htmlfile")
  34.         
  35.         dom.write GetFileText(folderPath & "" & filePath)
  36.         
  37.         title = dom.getElementsByTagName("span").Item(0).ChildNodes(1).innerText
  38.         
  39.         body = "<table>" & dom.getElementsByTagName("div").Item(2).innerHTML & "</table>"
  40.         
  41.         dom.parentWindow.clipboardData.setData "text", body
  42.         
  43.         Set dom = Nothing
  44.         
  45.         With Worksheets.Add
  46.             .Name = title
  47.             .Activate
  48.             .PasteSpecial Format:="Unicode 文本", Link:=False, DisplayAsIcon:=False
  49.         End With
  50.         
  51.         filePath = Dir()
  52.         
  53.     Wend

  54. End Sub


  55. Private Function GetFolderPath()
  56.     Dim FileDialog
  57.    
  58.     Set FileDialog = Application.FileDialog(msoFileDialogFolderPicker)
  59.    
  60.     FileDialog.title = "请选择数据文件夹"
  61.    
  62.     FileDialog.Show
  63.    
  64.     If FileDialog.SelectedItems.Count = 0 Then
  65.    
  66.         Set FileDialog = Nothing
  67.         
  68.         GetFolderPath = ""
  69.         
  70.         Exit Function
  71.     End If
  72.    
  73.     GetFolderPath = FileDialog.SelectedItems(1)
  74.    
  75.     Set FileDialog = Nothing
  76. End Function
复制代码

合并多个html到excel工作簿.7z

22.18 KB, 下载次数: 8

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-2 18:45 来自手机 | 显示全部楼层
copy “d:\html文件夹路径\*.html” “d:\文件夹路径\all.htm”
开始运行下

TA的精华主题

TA的得分主题

发表于 2023-3-2 18:45 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
使用英文引号

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-2 19:26 | 显示全部楼层

谢谢老师!运行的太棒了!又快又顺!抱歉!因为下午出去了!没有及时回复!另外,我没有用此句,copy “d:\html文件夹路径\*.html” “d:\文件夹路径\all.htm”。运行的也非常好呀!那此句还有用吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 20:35 , Processed in 0.042019 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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