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 TemplateProto 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 -
- VBA GetOpenFileName
- KPI Dashboard v Excelu
- Otevřený sešit VBA
- Počet Excel Excel
- Excel VBA On Error Resume Next