2012-11-29 24 views
7

Użyłem następującego kodu do pobrania danych z XML do Excela. Ale problem polega na tym, że wyniki są otwierane w nowym skoroszycie "Book1". Ale chcę uzyskać wyniki w określonym arkuszu w tym samym programie Excel, w którym mam to makro.
Należy pamiętać, że nie chcę tworzyć schematu w kodzie, ponieważ zmienia się schemat dla wszystkich plików XML. Poniższy kod nie wymaga określenia schematu. Może zrzucić wyniki w nowym arkuszu Excel z odpowiednimi nazwami kolumn. Tak, proszę dać mi znać, w jaki sposób mogę uzyskać wyniki w sheet2 w tym samym skoroszycie?Jak pobrać dane z pliku XML do arkusza Excel za pomocą 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 

Odpowiedz

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

hej Tim, wielkie dzięki ......... to działało :). To było moje złe, nie określiłem poprawnie nazwy arkusza. – tester

0

stworzyłem po prostu xmlmap. Potrzebuję kodu do zaimportowania danych XML do programu Excel (prawy click-xml-import), aby uzyskać dane z xml lub innego. Chcę zachować utworzoną przez mnie xmlmap i po prostu zamienić dane w moich xlxs na dane z innego 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 
Powiązane problemy