web-dev-qa-db-fra.com

Comment récupérer des données d'un fichier XML vers une feuille Excel à l'aide de VBA

J'ai utilisé le code suivant pour extraire des données XML vers Excel. Mais le problème est que les résultats sont ouverts dans un nouveau classeur "Book1". Mais je veux obtenir les résultats dans une feuille de calcul spécifique dans le même Excel où j'ai cette macro.
Veuillez noter que je ne souhaite pas créer de schéma dans le code, car le schéma change pour tous les XML. Le code mentionné ci-dessous n'a pas besoin de spécifier le schéma. Il peut vider les résultats dans une nouvelle feuille Excel avec les noms de colonne appropriés. Alors, s'il vous plaît laissez-moi savoir comment puis-je obtenir les résultats dans le sheet2 dans le même classeur?

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

End Sub
7
tester
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
15
Tim Williams

j'ai créé simplement un xmlmap. J'ai besoin d'un code pour importer des données XML dans Excel (clic droit - Importer XML), pour obtenir des données d'un fichier XML ou autre. Je veux conserver le xmlmap que j'ai créé et remplacer simplement les données de mon xlxs par des données provenant d'un autre 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
0
Alex