Excel VBA GetObject
VBA GetObject se kot ime zdi, da moramo ustvariti kodo za pridobivanje ali ustvarjanje predmeta. Toda v resnici gre za pridobivanje tabel iz katere koli besede v datoteko excel. V VBA GetObject pridobimo podatke iz besedilne datoteke, tako da vnesemo lokacijo, kjer se hranijo, in dodate poljubno število tabel iz te besede v list Excela.
Sintaksa VBA GetObject
Sintaksa je razložena, kot je prikazano spodaj:
- PathName = Tu bomo podali pot do dokumenta Word, kjer se hrani. To polje ni obvezno.
- Class = Tukaj moramo določiti funkcijo Class of Object. Ta je preveč neobvezna. Če pa v sintaksi ne definiramo PathName, bo treba definirati Class.
Oba argumenta skladnje nista izbirna. Toda kdo od njih bi se moral opredeliti.
Tu bomo za določitev razreda uporabili appname.objecttype . AppName bo aplikacija ali vrsta datoteke, iz katere bomo prejemali podatke, Objecttype pa bo vrsta datoteke, ki jo bomo uporabljali.
Primer funkcije GetObject v Excelu VBA
Videli bomo, kako v besednem dokumentu pridobiti podatke, ki so v obliki Tabela, in jih dodati v delovni list Excel.
To predlogo VBA GetObject Excel lahko prenesete tukaj - VBA Predloga GetObject ExcelZa to potrebujemo take podatke v besedilni datoteki. Spodaj imamo besedilno datoteko, ki ima 2 tabeli imena zaposlenega in ID zaposlenega.
To datoteko smo shranili nekje v lokalnem pogonu, ki je enostaven za dostop. Za uporabo funkcije GetObject v Excelu VBA sledite spodnjim korakom.
1. korak: Pojdite v okno VBA in odprite modul na zavihku menija Vstavljanje, kot je prikazano spodaj.
2. korak: V novo odprti modul napišite podkategorijo VBA GetObject ali lahko izberete katero koli drugo ime po potrebi.
Korak 3: Najprej določite spremenljivko 2 predmeta za dostop do predmeta, ki ga je pripravil VBA GetObject.
4. korak: Potrebovali bi še eno spremenljivko, za katero bomo shranili lokacijo datoteke kot niz.
5. korak: Da se izognemo morebitnemu prelomu, če pride do napake, bomo nadaljevali z naslednjim korakom.
6. korak: Zdaj bi uporabili funkcijo GetObject in jo nastavili kot objekt WordFile . Če bomo pot prazni, bomo razred opredelili kot Word.Application, kjer je Word aplikacija Microsofta.
7. korak: Da se izognemo napaki številka 429, ki se običajno pojavi v tem primeru, jo bomo počistili, kot se zgodi.
8. korak: Zdaj naredite vidno ustvarjeno spremenljivko predmeta WordFile .
9. korak: Ker poti še nismo definirali, bomo StrDocu dodelili lokacijo datoteke skupaj s pripono.
Korak 10: Če v besedni datoteki nismo našli ničesar, bi se nam moralo pojaviti sporočilo, da "ni podatkov na voljo" ali "dokument ni najden". In to bi storili v zanki If-End If.
11. korak: Zdaj aktivirajte datoteko Word.
12. korak: Naredite isti postopek za nastavitev WordDoca. Če WordDoc ni nič, bomo datoteko odprli z mesta, kjer se hrani.
Korak 13: Zdaj bomo morali določiti spremenljivke, ki bodo pomagale pri dostopu do tabele iz dokumenta Word. S tem bomo ustvarili tabelo z vrsticami in stolpci.
14. korak: Kot vsi vemo, je vertika celic dvodimenzionalna. Torej od prve celice potrebujemo 2 spremenljivki, kjer bomo določili lokacijo, od koder moramo začeti svojo tabelo v Excelu. Tu smo razmislili o položaju pri (1, 1), ki je na prvi celici lista.
15. korak: Na tej stopnji moramo preveriti število tabel v datoteki Word. In če ni nobene tabele, bi morali dobiti sporočilo za to.
16. korak: V tem koraku moramo odpreti tabelo iz dokumenta Word in preslikati to v datoteki Excel. Za to bomo uporabili zanko For za vsako vrstico in stolpec.
Korak 17: Končno bomo dokument zapustili, ko doda podatke iz besede v datoteko excel, ne da bi datoteko shranili.
18. korak: Zdaj zaženite zgornjo kodo s pritiskom na tipko F5 ali s klikom na gumb Predvajaj.
Videli bomo, podatki, ki smo jih videli na začetku članka, ki je bil ločen v dveh različnih tabelah, so zdaj dodani v eno samo tabelo v Excelovem listu.
Spodaj je celotna koda v enem zaporedju:
Koda:
Pod VBA_GetObject () Dim WordFile kot predmet Dim WordDoc kot predmet Dim StrDoc kot niz za napako Nadaljuj Naslednji niz WordFile = GetObject (, "Word.Application") Če je Err.Number = 429 Nato Err.Clear nastavi WordFile = CreateObject ("Word. Aplikacija ") Konec, če WordFile.Visible = Resnično StrDoc =" D: \ Vnos \ Test.docx "Če Dir (StrDoc) =" "Potem MsgBox StrDoc & vbCrLf &" Ni najdeno na omenjeni poti "& vbCrLf &" C: \ Vhodna lokacija ", vbExclamation, " Ime dokumenta ni mogoče najti "Izhod iz konca konca, če WordFile.Activate Nastavi WordDoc = WordFile.Documents (StrDoc) Če WordDoc ni nič, potem nastavite WordDoc = WordFile.Documents.Open (" D: \ Vnos \ Test). docx ") WordDoc.Activate Dim Tble kot celoten Dim RowWord tako dolgo Dim ColWord As Celoštevilko A A Long Dim B As Long A = 1 B = 1 Z WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Potem MsgBox" No Tables Razpoložljivo ", vbExclamation, " Nič za uvoz "Izhod iz konca konca Če je za i = 1 Za Tble s .Tables (i) Za RowWord = 1 Do .Rows.Count za ColWord = 1 do. Column.Count Cells (A, B) = Delovni listFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Naslednji ColWord B = 1 A = A + 1 Naslednji konec vrsticeWord z naslednjim koncem z WordDoc.Zaprite prihranke: = False WordFile.Quit Set WordDoc = Nič nastavljeno WordFile = Nič konca Sub
Prednosti programa Excel VBA GetObject
- Zelo uporaben je pri uvozu velikega nabora podatkov iz datoteke Word v datoteko excel.
- Lahko uvozimo katero koli vrsto podatkov iz katere koli datoteke samo s spreminjanjem razširitve.
Stvari, ki jih je treba zapomniti
- Pred zagonom kode zaprite vse besedilne datoteke.
- Datoteki, ki se uporablja, dajte ustrezno pripono.
- GetObject ni mogoče uporabiti za dostop do reference do razreda.
Priporočeni članki
To je vodnik za VBA GetObject. Tu smo razpravljali o tem, kako s funkcijo GetObject v VBA uporabiti podatke iz besedilne datoteke v listu excel skupaj s praktičnim primerom in naloženo predlogo excela. Ogledate si lahko tudi druge naše predlagane članke -
- VBA GetOpenFileName
- KPI nadzorna plošča v Excelu
- Delovni zvezek VBA Odprto
- Število besed v Excelu
- Excel VBA o napaki Nadaljujte naprej