學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 工具軟件 > 辦公軟件學(xué)習(xí) > Excel教程 > Excel2013教程 > Excel中如何編寫VBA程序加載XML文件

Excel中如何編寫VBA程序加載XML文件

時間: 錦暉1117 分享

Excel中如何編寫VBA程序加載XML文件

  在Excel中,通過使用VBA程序,可以方便地實現(xiàn)XML文件的添加。實際上,通過VBA代碼向工作表導(dǎo)入XML文檔數(shù)據(jù)需要完成3個步驟。以下是學(xué)習(xí)啦小編為您帶來的關(guān)于Excel中編寫VBA程序加載XML文件的方法,希望對您有所幫助。

  Excel中編寫VBA程序加載XML文件的方法

  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("學(xué)號","姓名","性別","出生年月",_

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

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

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

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

  xMap.Name="學(xué)生信息架構(gòu)映射" '設(shè)置架構(gòu)映射的名稱

  End If

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

  For i=1 To UBound(arrPath)

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

  Next

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

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

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

  Next

  xMap.Import ThisWorkbook.Path&"\學(xué)生信息.xml" '導(dǎo)入XML數(shù)據(jù)文檔

  End Sub

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

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

  圖2 程序運行的結(jié)果

  提示

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

  3、添加導(dǎo)入數(shù)據(jù)的代碼。在程序代碼的最后添加如下代碼:

  xMap.Import ThisWorkbook.Path&“\學(xué)生信息.xml” '導(dǎo)入XML數(shù)據(jù)文檔

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

  圖3 運行結(jié)果

  注意

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

猜你喜歡:

1.Excel2010怎么添加Vba編輯器

2.Excel怎么調(diào)用VBA

3.excel如何使用VBA窗口

4.Excel2010怎樣添加Vba編輯器

5.怎么在VBA指令中調(diào)用Excel函數(shù)

3758428