Excel VBA GetObject
VBA GetObject, jak sama nazwa, wydaje się, że musimy stworzyć kod do pobrania lub utworzenia obiektu. Ale w rzeczywistości jest to proces uzyskiwania tabel z dowolnego słowa do pliku Excel. W VBA GetObject pobieramy dane z pliku słowa, umieszczając lokalizację, w której jest przechowywany, i dołączamy dowolną liczbę tabel z tego słowa do arkusza Excel.
Składnia VBA GetObject
Składnia jest wyjaśniona, jak pokazano poniżej:
- PathName = Tutaj podamy ścieżkę do dokumentu Word, w którym jest przechowywany. To pole jest opcjonalne.
- Klasa = Tutaj musimy zdefiniować funkcję klasy obiektu. Ten jest zbyt opcjonalny. Ale jeśli nie zdefiniujemy PathName w składni, klasa będzie musiała zdefiniować.
Oba argumenty składni są opcjonalne. Ale każdy z nich powinien zostać zdefiniowany.
Tutaj będziemy używać appname.objecttype do zdefiniowania klasy. AppName będzie aplikacją lub rodzajem pliku, z którego będziemy pobierać dane, a Objecttype będzie rodzajem aplikacji, z której będziemy korzystać.
Przykład funkcji GetObject w Excelu VBA
Zobaczymy, jak pobrać dane w postaci tabeli w dokumencie tekstowym i dołączyć te dane do arkusza programu Excel.
Możesz pobrać ten szablon VBA GetObject Excel tutaj - Szablon VBA GetObject ExcelW tym celu wymagamy takich danych w pliku Word. Poniżej znajduje się plik słów, który zawiera 2 tabele z nazwiskami pracowników i identyfikatorami pracowników.
Zapisaliśmy ten plik gdzieś na naszym lokalnym dysku, do którego można łatwo uzyskać dostęp. Wykonaj poniższe kroki, aby użyć funkcji GetObject w programie Excel VBA.
Krok 1: Przejdź do okna VBA i otwórz moduł z karty menu Wstaw, jak pokazano poniżej.
Krok 2: W nowo otwartym module napisz podkategorię VBA GetObject lub możesz wybrać dowolną inną nazwę według potrzeb.
Krok 3: Najpierw zdefiniuj zmienną 2 Object, aby uzyskać dostęp do obiektu przygotowanego przez VBA GetObject.
Krok 4: Potrzebowalibyśmy innej zmiennej, dla której będziemy przechowywać lokalizację pliku jako ciąg.
Krok 5: Aby uniknąć przerwy w przypadku wystąpienia błędu, będziemy kontynuować wznawianie następnego kroku.
Krok 6: Teraz użyjemy funkcji GetObject i ustawimy ją jako obiekt WordFile . Pozostawiając ścieżkę pustą, zdefiniujemy klasę jako Word.Application, gdzie Word jest aplikacją Microsoft.
Krok 7: Aby uniknąć błędu o numerze 429, który zwykle występuje w tym przypadku, usuniemy go, gdy tak się stanie.
Krok 8: Teraz pokaż utworzoną zmienną obiektową WordFile .
Krok 9: Ponieważ nie zdefiniowaliśmy ścieżki, przypiszemy lokalizację pliku do StrDoc wraz z rozszerzeniem.
Krok 10: Jeśli nie znaleźliśmy niczego w pliku słowa, powinniśmy otrzymać komunikat „Brak dostępnych danych” lub „Nie znaleziono dokumentu”. I byłoby to zrobione w pętli If-End If.
Krok 11: Teraz aktywuj plik Word.
Krok 12: Wykonaj tę samą procedurę, aby ustawić WordDoc. Jeśli WordDoc jest niczym, wówczas otworzymy plik z miejsca, w którym jest przechowywany.
Krok 13: Teraz będziemy musieli zdefiniować zmienne, które pomogą uzyskać dostęp do tabeli z dokumentu Word. W ten sposób utworzymy tabelę z rzędami i kolumnami.
Krok 14: Jak wszyscy wiemy, wierzchołek komórek jest dwuwymiarowy. Rozpoczynając od 1. komórki, potrzebowalibyśmy 2 zmiennych, w których zdefiniujemy lokalizację, od której musimy zacząć naszą tabelę w Excelu. Tutaj rozważaliśmy tę pozycję w (1, 1), która znajduje się w pierwszej komórce arkusza.
Krok 15: Na tym etapie musimy sprawdzić liczbę tabel w pliku Word. A jeśli nie zostaną znalezione tabele, powinniśmy otrzymać komunikat.
Krok 16: W tym kroku musimy uzyskać dostęp do tabeli z dokumentu Word i zmapować ją w pliku Excel. W tym celu użyjemy pętli For dla każdego wiersza i kolumny.
Krok 17: W końcu wyjdziemy z dokumentu, gdy doda dane ze słowa do pliku Excela bez zapisywania pliku.
Krok 18: Teraz uruchom powyższy kod, naciskając klawisz F5 lub klikając przycisk Odtwórz.
Zobaczymy, dane, które widzieliśmy na początku artykułu, który był osobny w 2 różnych tabelach, teraz są dołączane do pojedynczej tabeli w arkuszu programu Excel.
Poniżej znajduje się pełny kod w jednej sekwencji:
Kod:
Sub VBA_GetObject () Dim WordFile As Object Dim WordDoc As Object Dim StrDoc As String Po błędzie Wznów Dalej Ustaw WordFile = GetObject (, „Word.Application”) Jeśli Err.Number = 429 Następnie Err.Clear Ustaw WordFile = CreateObject („Word. Aplikacja ”) Koniec Jeśli WordFile.Visible = True StrDoc =„ D: \ Input \ Test.docx ”If Dir (StrDoc) =" „Następnie MsgBox StrDoc i vbCrLf i„ Nie znaleziono we wspomnianej ścieżce ”oraz vbCrLf i„ C: \ Input Location ”, vbExclamation, „ Nie znaleziono nazwy dokumentu ”Wyjdź z Sub End, jeśli WordFile.Activate Ustaw WordDoc = WordFile.Documents (StrDoc) Jeśli WordDoc jest niczym, to ustaw WordDoc = WordFile.Documents.Open („ D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble Jako 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 Następnie MsgBox" Brak tabel Dostępny ”, vbExclamation, „ Nic do zaimportowania ”Wyjdź z Sub Endu, jeśli dla i = 1 do Tble With .Tables (i) dla RowWord = 1 do .Rows.Count For ColWord = 1 do .Columns.Count Cells (A, B) = WorksheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Następny ColWord B = 1 A = A + 1 Następny RowWord Koniec z następnym końcem z WordDoc.Zamknij Savechanges: = False WordFile.Zamknij zestaw WordDoc = Nic nie ustaw WordFile = Nic nie kończy Sub
Plusy Excel VBA GetObject
- Jest to bardzo przydatne w przypadku importowania dużego zestawu danych z pliku Word do pliku Excel.
- Możemy zaimportować dowolny rodzaj danych z dowolnego rodzaju pliku, po prostu zmieniając jego rozszerzenie.
Rzeczy do zapamiętania
- Zamknij wszystkie pliki słów przed uruchomieniem kodu.
- Podaj odpowiednie rozszerzenie używanego pliku.
- GetObject nie może być użyty do uzyskania dostępu do odwołania do klasy.
Polecane artykuły
To jest przewodnik po VBA GetObject. Tutaj omawiamy, jak korzystać z funkcji GetObject w VBA, aby pobrać dane z pliku słowa do arkusza programu Excel, wraz z praktycznym przykładem i szablonem programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- VBA GetOpenFileName
- Pulpit nawigacyjny KPI w programie Excel
- Skoroszyt VBA Otwarty
- Excel Word Count
- Excel VBA o błędzie Wznów dalej