如何使用VBA将数据从XML文件提取到Excel工作表

时间:2012-11-29 06:23:08

标签: xml excel vba excel-vba

我使用以下代码将数据从XML提取到Excel。 但问题是,结果是在新工作簿“Book1”中打开的。但是我希望在具有此宏的同一Excel中的特定工作表中获得结果 请注意,我不想在代码中创建模式,因为所有XML的模式都会更改。下面提到的代码不需要指定架构。它可以使用正确的列名将结果转储到新的Excel工作表中。那么,请让我知道如何在同一工作簿中的sheet2中获得结果?

Sub ImportXMLtoList()
 Dim strTargetFile As String
 Application.DisplayAlerts = False
 strTargetFile = "C:\example.xml"
 Workbooks.OpenXML Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList
 Application.DisplayAlerts = True

End Sub

2 个答案:

答案 0 :(得分:15)

Sub ImportXMLtoList()
Dim strTargetFile As String
Dim wb as Workbook

     Application.Screenupdating = False
     Application.DisplayAlerts = False
     strTargetFile = "C:\example.xml"
     Set wb = Workbooks.OpenXML(Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList)
     Application.DisplayAlerts = True

     wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets("Sheet2").Range("A1")
     wb.Close False
     Application.Screenupdating = True


End Sub

答案 1 :(得分:0)

我创建了一个简单的xmlmap。我需要一个代码来将xml数据导入excel(右键单击-xml-import),以从xml或其他数据中获取数据。我想保留我创建的xmlmap,只需将xlxs中的数据替换为另一个xlm中的数据。

'Select the file
Fname = Application.GetOpenFilename(FileFilter:="xml files (*.xml), *.xml", MultiSelect:=False)

'Check if file selected
If Fname = False Then
    Exit Sub
    Else
Workbooks.Open Filename:=Fname
End If