Excel VBA GetObject
VBA GetObject, som navnet, virker som vi trenger å lage en kode for å få eller opprette et objekt. Men faktisk er det prosessen med å få tabellene fra alle ord til Excel-filer. I VBA GetObject henter vi dataene fra en ordfil ved å plassere stedet der de er lagret og legge til et hvilket som helst antall tabeller fra det Word i Excel-arket.
Syntaks for VBA GetObject
Syntaks forklares som vist nedenfor:
- PathName = Her vil vi gi banen til Word-dokumentet der det oppbevares. Dette feltet er valgfritt.
- Klasse = Her må vi definere Class of Object-funksjonen. Denne er for valgfri. Men hvis vi ikke definerer banenavn i syntaksen, vil klasse være å definere.
Begge argumentene for syntaks er valgfrie. Men hvem som helst av dem bør defineres.
Her vil vi bruke appname.objecttype for å definere klassen. AppName vil være applikasjonen eller filtypen vi vil hente dataene fra, og Objecttype vil være en slags filapplikasjon vi bruker.
Eksempel på GetObject-funksjon i Excel VBA
Vi får se hvordan du kan hente dataene som er i form av tabell i et orddokument og legge ved data i Excel-regnearket.
Du kan laste ned denne VBA GetObject Excel-malen her - VBA GetObject Excel-malFor dette krever vi slike data i ordfil. Her har vi en ordefil nedenfor, som har 2 tabeller med ansattes navn og ansattes ID.
Vi har lagret denne filen et sted i den lokale stasjonen som er lett tilgjengelig. Følg trinnene nedenfor for å bruke GetObject-funksjonen i Excel VBA.
Trinn 1: Gå til VBA-vinduet og åpne en modul fra Sett inn menyfanen som vist nedenfor.
Trinn 2: Skriv den underkategorien til VBA GetObject i den nyåpnede modulen, eller du kan velge hvilket som helst annet navn etter behov.
Trinn 3: Definer først variabelen 2 for å få tilgang til objektet utarbeidet av VBA GetObject.
Trinn 4: Vi trenger en annen variabel som vi vil lagre plasseringen til File som streng.
Trinn 5: For å unngå brudd hvis det oppstår en feil, fortsetter vi neste trinn.
Trinn 6: Nå vil vi bruke GetObject-funksjonen og sette den som WordFile- objekt. Når du holder banen tom, definerer vi klassen som Word. Søknad der Word er applikasjonen til Microsoft.
Trinn 7: For å unngå feil nummer 429 som vanligvis oppstår i dette tilfellet, vil vi fjerne det mens det skjer.
Trinn 8: Gjør nå den opprettede objektvariabelen WordFile synlig.
Trinn 9: Ettersom vi ikke har definert banen, så tilordner vi filplassering til StrDoc sammen med utvidelsen.
Trinn 10: Hvis vi ikke fant noe i ordfilen, bør vi få en melding om at "Ingen data er tilgjengelige" eller "Dokument ikke funnet". Og dette vil bli gjort i If-End If loop.
Trinn 11: Aktiver nå Word-filen.
Trinn 12: Gjør samme prosedyre for å stille inn WordDoc også. Hvis WordDoc ikke er noe, åpner vi filen fra stedet der den er oppbevart.
Trinn 13: Nå må vi definere variablene som vil hjelpe til med å få tilgang til tabellen fra Word-dokument. Ved å lage et bord med rader og kolonner.
Trinn 14: Som vi alle vet, er toppunktet til celler todimensjonalt. Så fra en første celle trenger vi 2 variabler der vi vil definere stedet der vi trenger for å starte tabellen i Excel. Her har vi vurdert den posisjonen ved (1, 1) som ligger i den første cellen på arket.
Trinn 15: På dette stadiet må vi sjekke antall tabeller i Word-fil. Og hvis det ikke finnes noen tabeller, bør vi få beskjeden for det.
Trinn 16: I dette trinnet må vi få tilgang til tabellen fra Word-dokument og kartlegge den i Excel-fil. For dette vil vi bruke For loop for hver rad og kolonne.
Trinn 17: Til slutt vil vi avslutte dokumentet når det legges til data fra Word til Excel uten å lagre filen.
Trinn 18: Kjør nå koden ovenfor ved å trykke på F5-tasten eller ved å klikke på Spill-knappen.
Vi vil se, dataene vi har sett i starten av artikkelen som var atskilte i to forskjellige tabeller, er nå lagt til i en enkelt tabell i excel-arket.
Nedenfor er den komplette koden i en sekvens:
Kode:
Sub VBA_GetObject () Dim WordFile Som Object Dim WordDoc Som Object Dim StrDoc Som streng på feil Fortsett Neste sett WordFile = GetObject (, "Word.Application") Hvis Err.Number = 429 Så Err.Clear Sett WordFile = CreateObject ("Word. Applikasjon ") Slutt Hvis WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "Hvis Dir (StrDoc) =" "Da MsgBox StrDoc & vbCrLf &" Ikke funnet i nevnte bane "& vbCrLf &" C: \ Input Location ", vbExclamation, " Document name not found "Exit Sub End If WordFile.Activate Set WordDoc = WordFile.Documents (StrDoc) Hvis WordDoc er ingenting, sett deretter WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble As Heiltall Dim RowWord As Long Dim ColWord Som Heiltall Dim A As Long Dim B As Long A = 1 B = 1 With WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" Ingen tabeller Tilgjengelig ", vbExclamation, " Ingenting å importere "Avslutt subend hvis for i = 1 å binde med. Tabeller (i) For RowWord = 1 til. Rows.Count for ColWord = 1 til. Columns.Count Cells (A, B) = WorksheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Next ColWord B = 1 A = A + 1 Next RowWord End With Next End With WordDoc.Close Savechanges: = False WordFile.Quit Sett WordDoc = Nothing Set WordFile = Nothing End Sub
Fordeler med Excel VBA GetObject
- Det er ganske nyttig når du importerer det store settet med data fra Word-fil til Excel-fil.
- Vi kan importere alle slags data fra alle slags filer bare ved å endre utvidelsen av den.
Ting å huske
- Lukk alle ordfilene før du kjører koden.
- Gi riktig utvidelse til filen som blir brukt.
- GetObject kan ikke brukes til å få tilgang til referansen til klassen.
Anbefalte artikler
Dette er en guide til VBA GetObject. Her diskuterer vi hvordan du bruker GetObject-funksjonen i VBA for å hente dataene fra en ordfil i excelarket sammen med et praktisk eksempel og nedlastbar excelmal. Du kan også gå gjennom andre foreslåtte artikler -
- VBA GetOpenFileName
- KPI Dashboard i Excel
- VBA arbeidsbok åpen
- Excel Word Count
- Excel VBA Ved feil CV igjen