VBA XML
Excel VBA XML
den fullständiga formen av XML är eXtensible Markup Language som är ungefär som en HTML-fil, är utformad för att lagra och transportera data från olika program. XML-fil lagrar data som inkluderar splittringar och separatorer. Vi kan skapa en VBA-kod med vilken vi kan importera data från XML-filen till Excel. För att importera data från XML-filen till något annat format måste vi ställa in några regler som berättar vilken typ av data och fält som kan användas i XML-filen. För att skapa ett makro i VBA för XML-filen behöver vi inte nödvändigtvis XML-anteckningsblock i vårt system. Men om vi har det blir det lätt för oss att läsa XML-filen för de data vi behöver.
även om vi i Excel har en bestämmelse om att importera data från XML-filen men med VBA kan vi läsa, importera XML-filen i Excel.
titta på våra Demo kurser och videor
värdering, Hadoop, Excel, mobilappar, Webbutveckling & många fler.
typer av nod i VBA XML
i XML har vi en mängd olika noder som konstruktivt hjälper till att läsa och analysera XML-filen i andra källor som Word eller Excel. Varje DocumentElement hänvisar till några av noderna listorna nedan.
- Modernod
- första barnet
- sista barnet
- barnnoder
- nästa syskon
- föregående syskon
alla ovan nämnda noder bekräftar typen som , där endast barnnoder är arraytypen av .
i det här exemplet ser vi en mycket enkel VBA-kod för att komma åt XML-filen som sparats i det enskilda systemets valfri plats och ladda dem till VBA. Vanligtvis, för att importera XML-filer i Excel med VBA, har vi MSXML2.DOMDocument objekt för att tillåta oss att korsa data genom XML-struktur. Men detta får inte användas i det här exemplet.
för detta måste vi ha en XML-fil där vi kan skapa en datastruktur i form av Schema. Nedan är skärmdumpen av företagets schema där vi under det har anställd filial med anställdas detaljer som Förnamn, Efternamn, kontaktnummer, e-post-ID.
steg för att importera & Lägg till XML i Excel VBA
nedan är exemplen på XML i Excel med hjälp av VBA-koden.
exempel #1
Steg 1: Gå först till Infoga menyflik i VBA och öppna en modul där vi kommer att skriva koden tvärgående data genom XML som visas nedan.
steg 2: Skriv delproceduren i namnet på VBA XML för definitionen av koden.
kod:
Sub VBA_XML()End Sub
steg 3: som vi redan diskuterat kommer vi att kräva objekt för XML-filen. Så definiera nu en variabel med DIM som sträng som kommer att användas för att lagra filnamnet.
kod:
Sub VBA_XML()Dim XMLFile As StringEnd Sub
steg 4: Nu kommer vi att använda ett program display varningar som används för att visa varningsmeddelandet om den valda sökvägen är felaktig.
kod:
Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseEnd Sub
Steg 5: Nu lägger vi länken eller platsen där vi har behållit XML-filen och tilldelar den till den definierade variabeln.
kod:
Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"End Sub
steg 6: Som vi diskuterade får vi det första objektet med MSXML2.DOMDoucment.
kod:
Sub VBA_XML()Dim CusDoc As ObjectDim Base As ObjectSet CusDoc = CreateObject("MSXML2.DOMDoucment")End Sub
Steg 7: för att ladda data för XML-filen i Excel måste vi öppna den XML-filen med namnet och platsen som vi har lagrat i XML-filvariabeln och välj alternativet Ladda som Importera till lista som visas nedan.
kod:
Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Workbooks.OpenXML Filename:=XMLFile, LoadOption:=xlXmlLoadImportToListEnd Sub
steg 8: Slutligen, använd igen Applikationsalternativet för att visa varningen som sann om det finns någon.
kod:
Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Workbooks.OpenXML Filename:=XMLFile, LoadOption:=xlXmlLoadImportToListApplication.DisplayAlerts = TrueEnd Sub
steg 9: nu kommer vi att kompilera den skrivna koden genom att trycka på F8-funktionsknappen och köra den om det inte finns något fel under kompileringen.
vi kommer att se, de data som lagras i XML-filen importeras inte i en ny arbetsbok som visas nedan. Vi kan hämta någon längd av data för XML-fil i Excel med hjälp av denna enkla VBA-kod.
exempel # 2
det finns ett annat sätt att importera data från en XML-fil med VBA-koden som också är enkel. För detta kan vi ha en annan modul av vi kan göra ändringarna i samma modul också.
Steg 1: för detta igen skulle vi kräva en modul och där skriva Underproceduren i namnet VBA XML.
kod:
Sub VBA_XML2()End Sub
steg 2: Definiera en variabel som sträng där vi lagrar filplatsen och en annan variabel för arbetsbok som visas nedan.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookEnd Sub
steg 3: nu liknar det föregående exemplet kommer vi nu att använda 2-applikationer, en av skärmuppdatering och andra för Visningsvarningar som falska.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseEnd Sub
steg 4: Nu i den definierade variabeln XMLFile tilldelar vi sökvägen till XML-filen.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"End Sub
Steg 5: i likhet med exempel-1 uppdaterar vi nu koden för att öppna XML-filen med sökvägen definierad i xmlfile-variabeln och laddar dataimporten till listan.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)End Sub
steg 6: nu igen för att sätta Display alert-programmet som sant.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueEnd Sub
Steg 7:När data har importerats kopierar vi det till en annan arbetsbok från den valda cellen A1: D1 enligt antalet rubriker som finns i XML-filen.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueWBook.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(1).Range("A1:D1")End Sub
steg 8: Stäng slutligen koden med hjälp av Skärmuppdateringsprogrammet som sant.
kod:
Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueWBook.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(1).Range("A1:D1")Application.ScreenUpdating = TrueEnd Sub
steg 9: Nu om vi kör den här koden ser vi att data från XML-filen importeras till en ny Excel-arbetsbok som visas nedan.
fördelar med VBA XML
- även om du inte vet hur man skapar en XML-fil och arbetar med den, med hjälp av sådana VBA-koder, kan vi extrahera data till VBA-kod eller i Excel.
- vi kan tolka en del av XML-Data eller slutföra data i VBA-fönstret med hjälp av nodreferenser.
saker att komma ihåg
- varje nodreferens har sitt eget värde och mening. Att använda rätt anteckningstyp är mycket viktigt för varje tillstånd.
- XML till VBA är inte begränsat till koden som vi har sett i ovanstående exempel.
- vi kan extrahera alla typer av data med hjälp av koden som vi har sett i ovan diskuterade exempel. Men behåll rätt plats och väg som är lätt att komma åt.
- vi kan också extrahera XML-fildata utan att öppna den från utvecklarflikens Källalternativ. Detta hjälper oss att få data som det är i Excel-arbetsboken.
- spara den skrivna koden Excel-fil i Makro aktiverat excel-format, för att undvika att förlora koden.
Rekommenderade artiklar
Detta är en guide till VBA XML. Här diskuterar vi steg för att importera & Lägg till XML i Excel VBA och dess olika typer av nod tillsammans med praktiska exempel och nedladdningsbar excel-mall. Du kan också gå igenom våra andra föreslagna artiklar–
- VBA LBound
- VBA få cellvärde
- VBA IsError
- VBA Solver
Leave a Reply