Excel VBA GetObject

VBA GetObject, som namnet, verkar som om vi behöver skapa en kod för att få eller skapa ett objekt. Men i själva verket är det processen att få tabellerna från alla ord till Excel-filer. I VBA GetObject hämtar vi data från en ordfil genom att placera platsen där de finns och lägger till ett antal tabeller från det ordet i Excel-arket.

Syntax för VBA GetObject

Syntax förklaras enligt nedan:

  • PathName = Här ger vi sökvägen till Word-dokumentet där det finns. Detta fält är valfritt.
  • Klass = Här måste vi definiera funktionen Klass för objekt. Den här är för valfri. Men om vi inte definierar sökvägnamn i syntaxen, måste klass definieras.

Båda syntaxens argument är valfria. Men någon av dem bör definieras.

Här kommer vi att använda appname.objecttype för att definiera klassen. AppName kommer att vara den applikation eller filtyp som vi hämtar data från och Objecttype är en typ av filapplikation vi kommer att använda.

Exempel på GetObject-funktion i Excel VBA

Vi kommer att se hur man hämtar data som finns i form av tabell i ett orddokument och lägger till dessa data i Excel-arbetsblad.

Du kan ladda ner denna VBA GetObject Excel-mall här - VBA GetObject Excel-mall

För detta kräver vi sådana data i ordfil. Här har vi en ordfil nedan, som har två tabeller över anställdas namn och anställds-ID.

Vi har sparat den här filen någonstans i vår lokala enhet som är lätt att komma åt. Följ stegen nedan för att använda GetObject-funktionen i Excel VBA.

Steg 1: Gå till VBA-fönstret och öppna en modul från menyfliken Infoga som visas nedan.

Steg 2: Skriv den underkategorin i VBA GetObject i den nyöppnade modulen, eller så kan du välja vilket annat namn som helst.

Steg 3: Definiera först 2-variabeln för att få åtkomst till objektet förberett av VBA GetObject.

Steg 4: Vi skulle behöva en annan variabel som vi lagrar platsen för File som String.

Steg 5: För att undvika brott om ett fel uppstår fortsätter vi nästa steg.

Steg 6: Nu skulle vi använda GetObject-funktionen och ställa in den som WordFile- objekt. Om vi ​​håller sökvägen tom definierar vi klassen som Word.Application där Word är Microsoft-applikationen.

Steg 7: För att undvika fel nummer 429 som vanligtvis inträffar i detta fall rensar vi det när det händer.

Steg 8: Gör nu den skapade objektvariabeln WordFile synlig.

Steg 9: Eftersom vi inte har definierat sökvägen tilldelar vi filplatsen till StrDoc tillsammans med tillägget.

Steg 10: Om vi ​​inte hittade någonting i ordfilen, borde vi få ett meddelande om att "Inga tillgängliga data" eller "Dokumentet hittades inte". Och detta skulle göras i If-End If-loopen.

Steg 11: Aktivera nu Word-filen.

Steg 12: Gör samma procedur för att ställa in WordDoc också. Om WordDoc inte är något så öppnar vi filen från den plats där den finns.

Steg 13: Nu måste vi definiera variablerna som hjälper till att komma åt tabellen från Word-dokument. Genom detta skapar vi en tabell med rader och kolumner.

Steg 14: Som vi alla vet är cellens topp 2 tvådimensionell. Så med början från 1: e cellen behöver vi två variabler där vi definierar platsen där vi behöver för att starta vårt bord i Excel. Här har vi övervägt den positionen vid (1, 1) som är vid 1: a cellen på arket.

Steg 15: I detta skede måste vi kontrollera antalet tabeller i Word-filen. Och om det inte finns några tabeller så borde vi få meddelandet för det.

Steg 16: I det här steget måste vi komma åt tabellen från Word-dokument och kartlägga den i Excel-fil. För detta kommer vi att använda For loop för varje rad och kolumn.

Steg 17: Slutligen avslutar vi dokumentet när det läggs till data från Word till Excel-fil utan att spara filen.

Steg 18: Kör nu koden ovan genom att trycka på F5-tangenten eller genom att klicka på Play-knappen.

Vi kommer att se, de data som vi har sett i början av artikeln som var separata i två olika tabeller, är nu bifogade i en enda tabell i excel-arket.

Nedan är den fullständiga koden i en sekvens:

Koda:

 Sub VBA_GetObject () Dim WordFile As Object Dim WordDoc Som Object Dim StrDoc Som String On Error Resume Next Set WordFile = GetObject (, "Word.Application") If Err.Number = 429 Sedan Err.Clear Ställ WordFile = CreateObject ("Word. Applikation ") Avsluta Om WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "Om Dir (StrDoc) =" "Sedan MsgBox StrDoc & vbCrLf &" Hittade inte i nämnda sökväg "& vbCrLf &" C: \ Input Location ", vbExclamation, " Document name not found "Exit Sub End If WordFile.Activate Set WordDoc = WordFile.Documents (StrDoc) Om WordDoc är ingenting Ställ sedan WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble Som heltal Dim RowWord As Long Dim ColWord As Heiltal Dim A Som Long Dim B As Long A = 1 B = 1 With WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" No Tables Tillgänglig ", vbExclamation, " Ingenting att importera "Exit Sub End If For i = 1 To Tble With. Tabeller (i) For RowWord = 1 To. Rows.Count For ColWord = 1 To .Columns. Antal celler (A, B) = ArbetsbladFunctio 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 Ställ in WordDoc = Ingenting anger WordFile = Ingenting slut Sub 

Fördelar med Excel VBA GetObject

  • Det är ganska användbart att importera den stora uppsättningen data från Word-fil till Excel-fil.
  • Vi kan importera alla typer av data från alla typer av filer bara genom att ändra förlängningen av den.

Saker att komma ihåg

  • Stäng alla ordfiler innan du kör koden.
  • Ge rätt tillägg till filen som används.
  • GetObject kan inte användas för att komma åt referensen till klass.

Rekommenderade artiklar

Detta är en guide till VBA GetObject. Här diskuterar vi hur man använder GetObject-funktionen i VBA för att hämta data från en ordfil i excelarket tillsammans med ett praktiskt exempel och en nedladdningsbar excelmall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA GetOpenFileName
  2. KPI-instrumentpanelen i Excel
  3. VBA Workbook Open
  4. Excel Word Count
  5. Excel VBA vid felupptagning Nästa

Kategori: