Excel VBA GetObject

VBA GetObject, zoals de naam, lijkt erop dat we een code moeten maken om een ​​object op te halen of te maken. Maar in feite is het het proces om de tabellen van elk woord naar een Excel-bestand te krijgen. In VBA GetObject halen we de gegevens uit een Word-bestand door de locatie te plaatsen waar het wordt bewaard en voegen we een willekeurig aantal tabellen uit dat Word toe aan het Excel-blad.

Syntaxis van VBA GetObject

Syntaxis wordt uitgelegd zoals hieronder weergegeven:

  • PathName = Hier geven we het pad naar het Word-document waar het wordt bewaard. Dit veld is optioneel.
  • Class = Hier moeten we de functie Class of Object definiëren. Deze is te optioneel. Maar als we de PathName niet in de syntaxis definiëren, moet Class worden gedefinieerd.

Beide argumenten van de syntaxis zijn optioneel. Maar elk van hen moet worden gedefinieerd.

Hier zullen we appname.objecttype gebruiken om de klasse te definiëren. AppName is de toepassing of het type bestand waaruit we de gegevens ophalen en Objecttype is een soort bestandstoepassing die we zullen gebruiken.

Voorbeeld van de GetObject-functie in Excel VBA

We zullen zien hoe we de gegevens in de vorm van een tabel in een Word-document kunnen ophalen en die gegevens in Excel-werkblad kunnen toevoegen.

U kunt deze VBA GetObject Excel-sjabloon hier downloaden - VBA GetObject Excel-sjabloon

Hiervoor hebben we dergelijke gegevens in een Word-bestand nodig. Hier hebben we een woordbestand hieronder, dat 2 tabellen met de naam van de werknemer en de ID van de werknemer heeft.

We hebben dit bestand ergens op onze lokale schijf opgeslagen, dat gemakkelijk toegankelijk is. Volg de onderstaande stappen om de GetObject-functie in Excel VBA te gebruiken.

Stap 1: Ga naar het VBA-venster en open een module via het menutabblad Invoegen zoals hieronder wordt weergegeven.

Stap 2: schrijf in de nieuw geopende module de subcategorie van VBA GetObject of u kunt naar wens een andere naam kiezen.

Stap 3: Definieer eerst de variabele 2 Object om toegang te krijgen tot het Object voorbereid door VBA GetObject.

Stap 4: We hebben een andere variabele nodig, waarvoor we de locatie van Bestand opslaan als String.

Stap 5: Om een ​​pauze te voorkomen als er een fout optreedt, blijven we de volgende stap hervatten.

Stap 6: Nu zouden we de GetObject-functie gebruiken en instellen als WordFile- object. Als we Pad leeg houden, definiëren we de klasse als Word. Toepassing waarbij Word de toepassing van Microsoft is.

Stap 7: Om foutnummer 429 te voorkomen dat meestal in dit geval voorkomt, zullen we het wissen zodra het gebeurt.

Stap 8: Maak nu de gecreëerde Objectvariabele WordFile zichtbaar.

Stap 9: Omdat we het pad niet hebben gedefinieerd, zullen we samen met de extensie een bestandslocatie aan StrDoc toewijzen.

Stap 10: Als we niets in het Word-bestand hebben gevonden, zouden we een bericht moeten krijgen met de melding "Geen gegevens beschikbaar" of "Document niet gevonden". En dit zou gebeuren in de If-End If-lus.

Stap 11: Activeer nu het Word-bestand.

Stap 12: Voer dezelfde procedure uit om ook WordDoc in te stellen. Als WordDoc niets is, zullen we het bestand openen vanaf de locatie waar het wordt bewaard.

Stap 13: Nu moeten we de variabelen definiëren die helpen bij het openen van de tabel vanuit Word-document. Hiermee maken we een tabel met rijen en kolommen.

Stap 14: Zoals we allemaal weten is het hoekpunt van cellen tweedimensionaal. Dus vanaf 1 e cel hebben we 2 variabelen nodig waar we de locatie zullen definiëren van waaruit we onze tabel in Excel moeten starten. Hier hebben we rekening gehouden met die positie op (1, 1) die zich op de 1e cel van het vel bevindt.

Stap 15: In dit stadium moeten we het aantal tabellen in Word-bestand controleren. En als er geen tabellen worden gevonden, moeten we daarvoor de melding krijgen.

Stap 16: In deze stap hebben we toegang tot de tabel vanuit Word-document en moeten we die in Excel-bestand toewijzen. Hiervoor gebruiken we For-lus voor elke rij en kolom.

Stap 17: Eindelijk zullen we het document afsluiten zodra het de gegevens van Word naar Excel-bestand toevoegt zonder het bestand op te slaan.

Stap 18: Voer nu de bovenstaande code uit door op F5 te drukken of door op de knop Afspelen te klikken.

We zullen zien dat de gegevens die we aan het begin van het artikel hebben gezien, dat gescheiden was in 2 verschillende tabellen, nu zijn toegevoegd aan een enkele tabel in het Excel-blad.

Hieronder staat de volledige code in één reeks:

Code:

 Sub VBA_GetObject () WordFile dimmen als object WordDoc dimmen als object Dim StrDoc als String On Error Resume Next Set WordFile = GetObject (, "Word.Application") If Err.Number = 429 Dan Err.Clear Set WordFile = CreateObject ("Word. Toepassing ") Einde Als WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "If Dir (StrDoc) =" "Dan MsgBox StrDoc & vbCrLf &" Niet gevonden in genoemd pad "& vbCrLf &" C: \ Invoerlocatie ", vbExclamation, " Documentnaam niet gevonden "Sub-einde afsluiten Als WordFile.Activate instellen WordDoc = WordFile.Documents (StrDoc) Als WordDoc niets is, dan instellen WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activeer Dim Tble als geheel getal Dim RowWord zo lang Dim ColWord als geheel getal Dim A zo lang Dim B zo lang A = 1 B = 1 Met WordDoc Tble = WordDoc.Tables.Count Als Tble = 0 dan MsgBox" Geen tabellen Beschikbaar ", vbExclamation, " Niets te importeren "Sub-einde afsluiten Als voor i = 1 naar Tble With .Tables (i) voor RowWord = 1 tot .Rows.Count voor ColWord = 1 tot .Columns.Count Cells (A, B) = WerkbladFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Volgende ColWord B = 1 A = A + 1 Volgende RowWord End met Next End Met WordDoc.Close Savechanges: = False WordFile.Quit Set WordDoc = Niets ingesteld WordFile = Niets eindigt Sub 

Voordelen van Excel VBA GetObject

  • Het is heel handig bij het importeren van de grote reeks gegevens van Word-bestand naar Excel-bestand.
  • We kunnen alle soorten gegevens van elk soort bestand importeren door de extensie ervan te wijzigen.

Dingen om te onthouden

  • Sluit alle Word-bestanden voordat u de code uitvoert.
  • Geef de juiste extensie op voor het bestand dat wordt gebruikt.
  • GetObject kan niet worden gebruikt om toegang te krijgen tot de verwijzing naar klasse.

Aanbevolen artikelen

Dit is een handleiding voor VBA GetObject. Hier bespreken we hoe u de GetObject-functie in VBA kunt gebruiken om de gegevens uit een Word-bestand op te halen in het Excel-blad, samen met een praktisch voorbeeld en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA GetOpenFileName
  2. KPI-dashboard in Excel
  3. VBA-werkboek geopend
  4. Excel Word Count
  5. Excel VBA On Error Resume Next

Categorie: