Excel VBA GetObject

VBA GetObject, jako název, vypadá, že potřebujeme vytvořit kód pro získání nebo vytvoření objektu. Ve skutečnosti se však jedná o proces získávání tabulek z jakéhokoli slova do souboru Excel. Ve VBA GetObject načteme data ze souboru aplikace Word tak, že umístíme místo, kde jsou uloženy, a připojíme libovolný počet tabulek z tohoto Wordu do listu Excel.

Syntaxe VBA GetObject

Syntaxe je vysvětlena, jak je uvedeno níže:

  • PathName = Zde dáme cestu k dokumentu Word, kde je uložen. Toto pole je volitelné.
  • Class = Zde musíme definovat funkci Class of Object. Tento je příliš volitelný. Ale pokud nedefinujeme PathName v syntaxi, pak Class bude muset definovat.

Oba argumenty syntaxe jsou volitelné. Každý z nich by však měl být definován.

Zde definujeme třídu appname.objecttype . AppName bude aplikace nebo typ souboru, ze kterého budeme načítat data a Objecttype bude druh aplikace souboru, kterou budeme používat.

Příklad funkce GetObject v aplikaci Excel VBA

Uvidíme, jak načíst data, která mají podobu tabulky, do textového dokumentu a tato data přidat do listu aplikace Excel.

Tuto šablonu aplikace VBA GetObject Excel si můžete stáhnout zde - VBA GetObject Excel Template

Proto požadujeme taková data ve slovním souboru. Zde máme níže uvedený textový soubor, který obsahuje 2 tabulky jména zaměstnance a ID zaměstnance.

Tento soubor jsme uložili někde na našem místním disku, který je snadno přístupný. Chcete-li použít funkci GetObject v aplikaci Excel VBA, postupujte podle následujících kroků.

Krok 1: Přejděte do okna VBA a otevřete modul na kartě nabídky Vložit, jak je ukázáno níže.

Krok 2: Do nově otevřeného modulu napište podkategorii VBA GetObject nebo můžete podle potřeby zvolit libovolný jiný název.

Krok 3: Nejprve definujte proměnnou 2 Object pro přístup k objektu připravenému pomocí VBA GetObject.

Krok 4: Potřebujeme další proměnnou, pro kterou uložíme umístění souboru jako řetězec.

Krok 5: Aby nedošlo k přerušení, dojde-li k chybě, budeme pokračovat v dalším kroku.

Krok 6: Nyní bychom použili funkci GetObject a nastavili ji jako objekt WordFile . Udržujeme cestu prázdnou, definujeme třídu jako Word.Application, kde Word je aplikace společnosti Microsoft.

Krok 7: Abychom se vyhnuli chybovému číslu 429, které se v tomto případě obvykle vyskytuje, vymažeme ho tak, jak se stane.

Krok 8: Nyní zviditelněte vytvořenou objektovou proměnnou WordFile .

Krok 9: Protože jsme nedefinovali cestu, přidělíme umístění souboru StrDoc společně s příponou.

Krok 10: Pokud jsme ve slovním souboru nenašli nic, měli bychom dostat zprávu s výzvou „Žádná data nejsou k dispozici“ nebo „Dokument nebyl nalezen“. A to by se dělo ve smyčce If-End If.

Krok 11: Nyní aktivujte soubor Word.

Krok 12: Stejným postupem proveďte i nastavení WordDoc. Pokud WordDoc není nic, otevřeme soubor z místa, kde je uloženo.

Krok 13: Nyní budeme muset definovat proměnné, které pomohou při přístupu k tabulce z dokumentu Word. Tím vytvoříme tabulku s řádky a sloupci.

Krok 14: Jak všichni víme, vrchol buněk je dvourozměrný. Takže počínaje 1. buňkou bychom potřebovali 2 proměnnou, kde budeme definovat místo, odkud potřebujeme začít tabulku v Excelu. Zde jsme uvažovali o poloze v (1, 1), která je v 1. buňce archu.

Krok 15: V této fázi musíme zkontrolovat počet tabulek v souboru Word. A pokud neexistují žádné tabulky, měli bychom za to dostat zprávu.

Krok 16: V tomto kroku musíme přistupovat k tabulce z dokumentu Word a mapovat ji v souboru Excel. K tomu použijeme smyčku For pro každý řádek a sloupec.

Krok 17: Nakonec ukončíme dokument, jakmile připojí data ze slova do excelového souboru bez uložení souboru.

Krok 18: Nyní spusťte výše uvedený kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát.

Uvidíme, že data, která jsme viděli na začátku článku, která byla oddělena ve 2 různých tabulkách, jsou nyní připojena do jediné tabulky v Excelu.

Níže je kompletní kód v jedné sekvenci:

Kód:

 Sub VBA_GetObject () Dim WordFile jako objekt Dim WordDoc jako Object Dim StrDoc jako String On Error Resume Next Set WordFile = GetObject (, "Word.Application") If Err.Number = 429 Pak Err.Clear Set WordFile = CreateObject ("Word." Aplikace ") End If WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "If Dir (StrDoc) =" "Pak MsgBox StrDoc & vbCrLf &" Nenalezen ve zmíněné cestě "& vbCrLf &" C: \ Umístění vstupu ", vbExclamation, " Název dokumentu nebyl nalezen "Ukončete Sub End If WordFile.Activate Set WordDoc = WordFile.Documents (StrDoc) Pokud WordDoc nic není, pak nastavte WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble Integer Dim RowWord As Long Dim ColWord As Integer Dim A As Long Dim B As Long A = 1 B = 1 With WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" No Tables Dostupné ", vbExclamation, " Nic na import "Ukončit Sub End Pokud pro i = 1 do tabulky s .Tabulky (i) pro RowWord = 1 do .Rows.Count pro ColWord = 1 do .Columns.Count buněk (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 Set WordDoc = Nic Set WordFile = Nic End Sub 

Výhody aplikace Excel VBA GetObject

  • Je docela užitečné při importu velké sady dat ze souboru Word do souboru Excel.
  • Můžeme importovat jakýkoli druh dat z jakéhokoli souboru jen změnou jeho přípony.

Co si pamatovat

  • Před spuštěním kódu zavřete všechny soubory slov.
  • Dejte správnému příponu používaného souboru.
  • GetObject nelze použít pro přístup k odkazu na třídu.

Doporučené články

Toto je průvodce VBA GetObject. Zde diskutujeme o tom, jak pomocí funkce GetObject ve VBA načíst data ze textového souboru do listu Excel spolu s praktickým příkladem a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. VBA GetOpenFileName
  2. KPI Dashboard v Excelu
  3. Otevřený sešit VBA
  4. Počet Excel Excel
  5. Excel VBA On Error Resume Next

Kategorie: