ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 使用XMLHTTP批量导入XML文件

使用XMLHTTP批量导入XML文件

作者:绿色风 分类: 时间:2022-08-18 浏览:142
楼主
xmyjk
Q:文件夹里都是XML格式文件(海关完税凭证录入软件产生的),数据结构是相同的,
要将这些XML格式的文件一次性导入到EXCEL 文件中,在导入的过程中,另加一字段“申报月份”,
“申报月份”就是XML格式文件名中的数字部分。

A:
  1. Option Explicit
  2. Sub testm()
  3. Dim tmp, i As Integer, arr, xmlhttp As Object, N As Long, myFile As String, myPath As String
  4.    
  5. Application.ScreenUpdating = False
  6. [a1].CurrentRegion.Clear
  7. myPath = ThisWorkbook.Path & "\"
  8. myFile = Dir(myPath & "*.xml")
  9. [a1:j1] = Split("SWSBH,RecordCount,PKID,FPHM,JKKADM,JKKAMC,TFRQ,SE,BZ,申报日期", ",")
  10. Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
  11. Do While myFile <> ""
  12.     N = [a65536].End(xlUp).Row + 1

  13.     With xmlhttp
  14.         .Open "get", myPath & myFile, False
  15.         .send
  16.         tmp = Filter(Split(Replace(Replace(Replace(StrConv(.responsebody, vbUnicode, &H804), "</REC>", ""), "=""", ">"), """>", "</"), ">"), "</")
  17.     End With
  18.    
  19.     ReDim arr((UBound(tmp) - 4) \ 7, 9)
  20.     For i = 2 To UBound(tmp) - 2
  21.         arr((i - 2) \ 7, 0) = Split(tmp(0), "</")(0)
  22.         arr((i - 2) \ 7, 1) = Split(tmp(1), "</")(0)
  23.         arr((i - 2) \ 7, (i - 2) Mod 7 + 2) = Split(tmp(i), "</")(0)
  24.         arr((i - 2) \ 7, 9) = Split(Split(myFile, ".")(0), "SPZ")(1)
  25.     Next
  26.    
  27.     Cells(N, 1).Resize(UBound(arr) + 1, UBound(arr, 2) + 1) = arr
  28.     Erase tmp
  29.     Erase arr

  30.     myFile = Dir

  31. Loop
  32. [g:g].NumberFormat = "yyyy-mm-dd"
  33. [a:j].Columns.AutoFit

  34. Set xmlhttp = Nothing
  35. Application.ScreenUpdating = True
  36. MsgBox "Ok"
  37. End Sub

320684718553552.rar
2楼
wqfzqgk
呵呵,没有看,导入XML怎么还转弯呢
3楼
lnt1231
师公V5.

免责声明

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

评论列表
sitemap