2012-11-29 17 views
7

Ho utilizzato il seguente codice per recuperare i dati da XML a Excel. Ma il problema è che i risultati vengono aperti in una nuova cartella di lavoro "Book1". Ma voglio ottenere i risultati in un foglio di lavoro specifico nello stesso Excel in cui ho questa macro.
Si noti che non desidero creare uno schema nel codice, poiché lo schema cambia per tutti gli XML. Di seguito il codice non ha bisogno di schemi da specificare. Può scaricare i risultati nel nuovo foglio Excel con i nomi delle colonne corretti. Quindi, per favore fatemi sapere come posso ottenere i risultati nello sheet2 nella stessa cartella di lavoro?Come recuperare i dati dal file XML al foglio Excel utilizzando VBA

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

End Sub 

risposta

14
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 
+0

hey Tim, grazie mille ......... questo ha funzionato :). Era il mio cattivo, non ho specificato correttamente il nome del foglio. – tester

0

ho creato un semplice xmlmap. Ho bisogno di un codice per importare i dati xml in Excel (right-click-xml-import), per ottenere i dati da un xml o da un altro. Voglio mantenere la xmlmap che ho creato, e semplicemente sostituire i dati nel mio xlxs con i dati di un altro 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 
Problemi correlati