位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

怎么在Excel中編寫VBA程序加載XML文件

提問人:周麗平發(fā)布時間:2021-07-24

1、新建Excel文件,打開Visual Basic編輯器。選擇菜單欄中的“插入”|“模塊”命令創(chuàng)建一個新模塊,雙擊該模塊打開其“代碼”窗口,在其中輸入程序代碼,如圖1所示。具體的程序代碼如下所示:

Sub CreateXMLList()

Dim xMap As XmlMap

Dim objList As ListObject

Dim arrPath As Variant

Dim mPath As XPath

Dim i As Integer

On Error Resume Next

arrPath=Array("學號","姓名","性別","出生年月",_

"身份證號","籍貫","電話","地址") '架構元素名

Set xMap=ThisWorkbook.XmlMaps("學生信息架構映射") '獲取架構映射

If xMap Is Nothing Then '如果架構映射不存在則創(chuàng)建

Set xMap=ThisWorkbook.XmlMaps.Add(ThisWorkbook.Path&_"\學生信息.xsd") '創(chuàng)建到學生信息的架構映射

xMap.Name="學生信息架構映射" '設置架構映射的名稱

End If

Set objList=Sheet1.ListObjects.Add '在Sheet1表中添加列表

For i=1 To UBound(arrPath)

objList.ListColumns.Add '為列表添加列

Next

For i=0 To UBound(arrPath) '設置列表的各個列

objList.ListColumns(i+1).Name=arrPath(i) '設置列表第i+1列的列標題

objList.ListColumns(i+1).XPath.SetValue xMap,_"/學生明細/學生信息/"&arrPath(i) '建立第i+1列的區(qū)域映射

Next

xMap.Import ThisWorkbook.Path&"\學生信息.xml" '導入XML數據文檔

End Sub

image.png

圖1 添加模塊并輸入程序代碼

2、切換到Excel,選擇A1單元格,返回Visual Basic編輯器中,將插入點光標放置到上一步創(chuàng)建的程序中,按F5鍵運行程序,在Excel工作表中可以查看到程序代碼運行的結果,如圖2所示。

image.png

圖2 程序運行的結果

提示

從上面的結果中可以看出,Excel文件中已經加載了映射的名稱和元素,并且將這些元素都填充到Excel的列表中。

3、添加導入數據的代碼。在程序代碼的最后添加如下代碼:

xMap.Import ThisWorkbook.Path&“\學生信息.xml” '導入XML數據文檔

返回到VBA中,查看程序代碼運行結果,如圖3所示。

image.png

圖3 運行結果

注意

通過錄制宏并不能獲取導入XML文檔數據的全部代碼,其中指定映射區(qū)域的步驟將不會獲取任何宏代碼。因而讀者在使用該方法時,需要自己手動完成這些代碼的設置工作。

繼續(xù)查找其他問題的答案?

回復(0)
返回頂部