ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何利用vba代码批量导入xml文件信息?

如何利用vba代码批量导入xml文件信息?

作者:绿色风 分类: 时间:2022-08-17 浏览:97
楼主
kevinchengcw
Q: 如何利用vba代码批量导入xml文件信息?
A: 代码如下:
  1. Sub test()
  2. Dim FN$, N&, I&, LO As ListObject
  3. Application.ScreenUpdating = False  '关闭屏幕刷新及警告信息
  4. Application.DisplayAlerts = False
  5. FN = Dir(ThisWorkbook.Path & "\*.xml")  '枚举当前工作簿下的xml文件
  6. N = 1  '初始化起始导入行位置
  7. I = 0  '初始化申报日期列值为0,方便后期判断处理(因为列值为0是无效的)
  8. Do While FN <> ""  '循环处理各个找到的文件
  9.     ThisWorkbook.XmlImport ThisWorkbook.Path & "\" & FN, Nothing, False, Cells(N, 1)  '利用excel自身功能导入xml文件信息
  10.     If I = 0 Then I = Cells(1, Columns.Count).End(1).Offset(, 1).Column  '如果申请日期列号为0及将当前表最右方第一个空单元格列号赋给变量
  11.     Range(Cells(N, I), Cells(Rows.Count, I).End(3)) = Right(Split(FN, ".")(0), 6)  '向申请日期列当前表格区域写入从文件名中取得的申请日期数据
  12.     N = Cells(Rows.Count, 1).End(3).Offset(1).Row + 1  '取得下一起始行位置(在两表之间空一行,因为有的数据似乎超出空白行范围造成程序出错,两表间空格可以根据需要调整至更大,在后期处理时会清除空白的行)
  13.     For Each LO In ActiveSheet.ListObjects  '将当前工作表中的表格转换为区域,以方便进行删除等操作
  14.         LO.Unlist
  15.     Next LO
  16.     FN = Dir  '枚举下一个文件
  17. Loop
  18. Cells(1, Columns.Count).End(1) = "申报日期"  '为申报日期列写入标题
  19. Columns(1).NumberFormatLocal = "@"  '因A列数据长度为15位,故设置成文本格式
  20. For N = Cells(Rows.Count, 1).End(3).Row To 2 Step -1  '循环删除无效行,并将有效行A列数据转换为文本(防止出现科学计数样式)
  21.     If Cells(N, 1).Value = "SWSBH" Or Cells(N, 1) = "" Then
  22.         Rows(N).Delete
  23.     Else
  24.         Cells(N, 1) = Split(Cells(N, 1).Value, "")(0)
  25.     End If
  26. Next N
  27. Columns.AutoFit  '自动调整一下列宽
  28. Application.DisplayAlerts = True  '打开警告信息和屏幕刷新
  29. Application.ScreenUpdating = True
  30. MsgBox "OK"  '显示提示信息
  31. End Sub
更多方法和信息详见附件及素材源帖.
Demo.rar
2楼
JOYARK1958
謝謝提供學習下載中

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap