Excel VBA GetObject

Nagu nimi VBA GetObject näib, peame objekti loomiseks või loomiseks looma koodi. Kuid tegelikult on see protsess, mille käigus saadakse tabelid suvalisest sõnast Exceli faili. VBA GetObjectis toome sõnast failist andmed, pannes kohta, kus seda hoitakse, ja lisame suvalise arvu taandeid sellest Wordi Exceli lehele.

VBA GetObjecti süntaks

Süntaksit selgitatakse järgmiselt:

  • PathName = Siin anname tee Wordi dokumendile, kus seda hoitakse. See väli on valikuline.
  • Klass = Siin peame määratlema funktsiooni Objekti klass. See on liiga vabatahtlik. Kuid kui me ei määratle süntaksis PathName, siis tuleb määratleda klass.

Mõlemad süntaksi argumendid on valikulised. Kuid keegi neist tuleks määratleda.

Klassi määratlemiseks kasutame siin appname.objecttype . RakenduseNimi on rakendus või failitüüp, millelt andmed tuuakse ja objekti tüüp on selline failirakendus, mida kasutame.

Näide funktsiooni GetObject kohta Excelis VBA

Näeme, kuidas tõmmata sõnadokumendis tabelina esitatud andmed ja lisada need Exceli töölehele.

Selle VBA GetObject Exceli malli saate alla laadida siit - VBA GetObject Exceli mall

Selleks vajame selliseid andmeid sõnafailina. Siin on allpool sõnafail, millel on 2 tabelit Töötaja nimi ja Töötaja ID.

Oleme selle faili salvestanud oma kohalikku draivi, millele on lihtne juurde pääseda. Funktsiooni GetObject kasutamiseks Excelis VBA toimige järgmiselt.

1. samm: minge aknasse VBA ja avage vahekaardil Sisesta moodul, nagu allpool näidatud.

2. samm: kirjutage värskelt avatud moodulis VBA GetObject alamkategooria või võite vastavalt vajadusele valida mõne muu nime.

3. samm: kõigepealt määratlege 2 objekti muutuja, et pääseda juurde VBA GetObjecti koostatud objektile.

4. samm: meil oleks vaja veel ühte muutujat, mille jaoks salvestame faili asukoha stringina.

5. samm: tõrke vältimiseks tõrke korral jätkame järgmise sammuga.

6. samm: Nüüd kasutaksime funktsiooni GetObject ja määraksime selle WordFile- objektiks. Hoides tee tühjana, määratleme klassi Word.Application, kus Word on Microsofti rakendus.

7. samm: selleks, et vältida vea numbrit 429, mis sel juhul tavaliselt ilmneb, kustutame selle nagu juhtub.

8. samm: tehke nüüd loodud objekti muutuja WordFile nähtavaks.

9. samm: kuna me pole teed määratlenud, määrame koos laiendiga StrDocile faili asukoha.

10. samm: kui me ei leidnud sõnafailist midagi, peaksime saama teate, milles palutakse teade „Andmeid pole” või „dokumenti ei leitud”. Ja seda tehakse If-End If silmus.

11. samm: aktiveerige nüüd Wordi fail.

12. samm: tehke sama protseduur ka WordDoci seadistamiseks. Kui WordDoc pole midagi, siis avame faili selle hoidmise kohast.

13. samm. Nüüd peame määratlema muutujad, mis aitavad Wordi dokumendist tabelile juurde pääseda. Selle abil loome ridade ja veergudega tabeli.

14. samm: nagu me kõik teame, on rakkude tipp kahemõõtmeline. Nii et alates 1. lahtrist oleks meil vaja 2 muutujat, kus me määratleme asukoha, kust peame oma tabelit Excelis alustama. Siin oleme kaalunud seda positsiooni (1, 1) juures, mis on lehe 1. lahtris.

15. samm: selles etapis peame kontrollima Wordi faili tabelite arvu. Ja kui ühtegi tabelit ei leita, peaksime saama sellekohase teate.

16. samm. Selles etapis peame pääsema Wordi dokumendist üles tabelile ja kaardistama see Exceli failina. Selleks kasutame iga rea ​​ja veeru jaoks silmuse jaoks For .

17. samm: Lõpuks väljume dokumendist, kui see lisab andmed Wordist Exceli faili ilma faili salvestamata.

18. samm. Nüüd käivitage ülaltoodud kood, vajutades klahvi F5 või klõpsates nuppu Esita.

Näeme, et andmed, mida nägime artikli alguses, mis oli eraldi kahes erinevas tabelis, on nüüd lisatud Exceli lehe ühte tabelisse.

Allpool on täielik kood ühes järjestuses:

Kood:

 Sub VBA_GetObject () Dim WordFile nagu Object Dim WordDoc Object Dim StrDoc As String On Error Resume Next Set WordFile = GetObject (, "Word.Application") Kui Err.Number = 429 Siis Err.Clear Set WordFile = CreateObject ("Word. Rakendus ") Lõpeta, kui WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "Kui Dir (StrDoc) =" "Siis MsgBox StrDoc & vbCrLf &" Ei leitud mainitud tees "& vbCrLf &" C: \ Sisestuskoht ", vbExclamation, " Dokumendi nime ei leitud "Exit Sub End, kui WordFile.Aktiviseeri Set WordDoc = WordFile.Documents (StrDoc) Kui WordDoc pole midagi, siis seadke WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Aktiviseeri Dim Tble täisarvuna Dim RowWord nii pikk Dim ColWord kui täisarv Dim A nii pikk Dim B nii pikk A = 1 B = 1 WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Siis MsgBox" tabeleid pole Avab ", vbExclamation, " Pole midagi importida "Väljuge alamotstarbest, kui jaoks i = 1 tuleb tabelit kasutada .Tabelitega (i) RowWord = 1 kuni .Rows.Count ColWord = 1 kuni .Columns.Count Cells (A, B) = TöölehtFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Next ColWord B = 1 A = A + 1 Next RowWord End of the Next End with WordDoc.Sulge Savechanges: = False WordFile.Quit Set WordDoc = Midagi pole WordFile'i seatud = Sub Sub ei ole midagi lõppu 

Excel VBA GetObject plussid

  • See on üsna kasulik suure hulga andmete importimisel Word-failist Excel-faili.
  • Saame importida mis tahes andmeid igasugusest failist, muutes selle laiendit.

Asjad, mida meeles pidada

  • Enne koodi käivitamist sulgege kõik sõnafailid.
  • Andke kasutatavale failile õige laiend.
  • GetObjectit ei saa kasutada klassile viitamise juurde pääsemiseks.

Soovitatavad artiklid

See on VBA GetObjecti juhend. Siin arutleme, kuidas kasutada VBA funktsiooni GetObject funktsiooniks sõnafailist andmete toomiseks exceli lehele koos praktilise näite ja allalaaditava exceli malliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA GetOpenFileName
  2. KPI armatuurlaud Excelis
  3. VBA töövihik avatud
  4. Exceli Wordi arv
  5. Excel VBA tõrke korral jätkatakse järgmisena

Kategooria: