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 Excel

Za 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 -

  1. VBA GetOpenFileName
  2. KPI nadzorna plošča v Excelu
  3. Delovni zvezek VBA Odprto
  4. Število besed v Excelu
  5. Excel VBA o napaki Nadaljujte naprej

Kategorija: