Uppdaterad av Brad Jones den 25 augusti 2017.
Under din arbetsvecka finns det förmodligen många gånger att du befinner dig kopiera och klistra in information från Microsoft Excel till Word, eller omvänd.
Så här producerar man ofta skrivna rapporter baserat på data som ackumuleras och uppdateras i ett kalkylblad. Excel är ett bra program för allt från att skapa professionella diagrammer 6 Nya Excel-diagram och hur man använder dem 6 Nya Excel-diagram och hur man använder dem Behöver du mer ut av dina Excel-diagram? Här är en enstegsguide till några av de nya diagrammen som introducerades i den senaste versionen av Excel. Läs mer, att skapa en projekthanteringsspårare 10 + Användbara Excel-mallar för projektledning och spårning 10 + Användbara Excel-mallar för projektledning och spårning Mallar är att projektledare vilka knivar är professionella kockar: oumbärliga. Vi visar dig hur du kan replikera framgångsrika projekt genom att använda färdiga mallar i Microsoft Excel och därefter. Läs mer - men när det gäller att skriva upp en rapport är Word ett mycket bättre verktyg.
I den här artikeln kommer vi att dyka in i VBA-skript i bakgrunden som gör att du faktiskt kan programmera anslutningar mellan data som lagras i en Excel-fil och Word-dokument där du producerar rapporter.
Det är förvånansvärt enkelt att integrera Microsoft Excel-data i Microsoft Word när du vet hur du lägger till rätt referenser, och hur du lägger ut syntaxen för bakgrunds-VBA-koden.
Ställa in kalkylbladet
I det här exemplet kommer jag att börja med ett ganska enkelt Excel-kalkylblad. I praktiken kan Excel-filen bestå av flera kalkylblad med mycket data - det spelar ingen roll.
Så länge du vet var du ska hitta data i kalkylbladet kommer du kunna nå och ta tag i det med VBA Hur man skickar e-postmeddelanden från ett Excel-kalkylblad med VBA-skript Hur skickar du e-post från ett Excel-kalkylblad med hjälp av VBA-skript Vi Jag ska visa dig hur du konfigurerar automatiserade e-postmeddelanden från Excel med hjälp av Collaboration Data Objects, (CDO) och VBA-skript. Våra kodmallar gör det mycket enklare än det låter! Läs mer .
Så här ser mitt provkalkylblad ut. Det är en lista över kostnadstotaler som har beräknats under hela året.
Ställa in Word-dokumentet
Låt oss säga att du har en chef som vill se en snygg formaterad rapport som beskriver utgifterna, grupperar tillsammans som objekt och presenterar informationen i en layout som är lite mer estetiskt tilltalande.
Du kan göra detta genom att inkorporera objekt som textrutor och etiketter i ditt Word-dokument. När du är i Word klickar du bara på fliken Utvecklare- menyn och väljer sedan "Design Mode" i avsnittet Kontroller . Använd rullgardinsmenyn Legacy Tools för att infoga olika olika element i ditt dokument.
Använd den här menyn för att infoga en etikett .
När du har etiketten placerad i dokumentet där du vill ha det (inte alltid en lätt uppgift) är du redo att programmera dataflödet. Men först måste du namnge etiketten så att VBA kan identifiera den. Högerklicka på etiketten och gå till Egenskaper . Hitta fältet (Namn) och kalla det något som du kommer ihåg.
Lägg nu till en kommandoknapp från samma listrutan Legacy Tools, och dubbelklicka på den för att öppna VBA-editoren. När du får din kod att fungera senare kan du ändra det så att koden körs på dokumentet Open () -händelsen. Det kommer du att se i listrutan objekt i redigeringsfönstret.
Arbeta med VBA
För att komma igång med att ansluta Word till Excel måste du se till att du kan referera till den senare i VBA. Programmet för Excel VBA Programmering för nybörjare. Excel VBA Programmering Handledning för nybörjare VBA är ett Microsoft Office-verktyg. Du kan använda den för att automatisera uppgifter med makron, inställningsfunktioner och mycket mer. Vi introducerar dig till Excel visuell grundläggande programmering med ett enkelt projekt. Läs mer .
Förbered Excel Data Importera
Klicka på Verktyg och sedan Referenser . Bläddra ner listan tills du ser Microsoft Excel 16.0 Object Library och välj det.
När du har gjort det här är resten bara ett problem att skriva ett löjligt enkelt VBA-skript för att dra in data från ett Excel-kalkylblad och uppdatera automatiskt etiketttexten med data.
Här är koden:
Private Sub CommandButton1_Click () Dim objExcel Som Ny Excel.Application Dim exWb Som Excel.Workbook Set exWb = objExcel.Workbooks.Open ("C: \ Users \ Brad \ Desktop \ expenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Ark ("Sheet1"). Celler (12, 2) exWb.Close Set exWb = Inget Slut Del
Se hur det fungerar? Excel-programobjektet "exWb" öppnar Microsoft Excel-filen på den väg du tillhandahåller den, och den går direkt in i det specifika arket och cellnumret, extraherar data och placerar det i egenskapen Caption på etiketten som jag heter total_expenses . Allt du behöver redigera i ditt skript är filvägen och etikettnamnet.
Testa din makro
För att testa din kommandoknapp, spara ditt dokument och kom ihåg att ange att du vill ha ett Word Macro-enabled dokument så att din kod fungerar.
Här är VBA-makroen i aktion.
Integrera Excel-etiketter
Den svåra delen med att hantera etiketter i Word är att det ibland är svårt att anpassa det i slutet av en mening eller tillsammans med någon annan text.
Ett sätt att övervinna det innehåller faktiskt en del av texten tillsammans med data i själva VBA-koden. Som du kan se här har jag satt den statiska texten direkt in i texten när jag skapar etiketten själv.
Nu är allt du behöver göra med att inkludera den texten när du uppdaterar etiketten med ditt VBA-skript och bara lägga till data från Microsoft Excel-filen till slutet av den texten.
Här är vad den här typen av kod skulle se ut.
Dim objExcel Som Ny Excel.Application Dim exWb Som Excel.Workbook Set exWb = objExcel.Workbooks.Open ("c: \ Users \ Brad \ Desktop \ expenses.xlsa") ThisDocument.total_expenses.Caption = exWb.Sheets ("Sheet1" ) .Cells (12, 2) ThisDocument.total_hotels.Caption = "Hotell:" & exWb.Sheets ("Sheet1"). Celler (5, 2) ThisDocument.total_dining.Caption = "Dining Out:" & exWbSheets "Sheet1"). Celler (2, 2) ThisDocument.total_tolls.Caption = "Tolls:" & exWb.Sheets ("Sheet1"). Celler (3, 2) ThisDocument.total_fuel.Caption = "Bränsle:" & exWb. Ark ("Sheet1"). Celler (10, 2) exWb.Close Set exWb = Ingenting
Du kan använda strängförbindelsen "&" -symbolen för att placera koppla den statiska texten med data som extraheras från Excel-arket. Så här ser de slutliga resultaten ut i det uppdaterade Word-dokumentet:
Tar saker vidare
Om du vill testa dina förmågor, varför inte automatisera din rapport. 5 Resurser för Excel-makron för att automatisera dina kalkylblad. 5 Resurser för Excel-makron för att automatisera dina kalkylblad. Söka efter Excel-makron? Här är fem webbplatser som har det du letar efter. Läs mer ännu mer? Du kan ta bort den fula grå kommandoknappen från ditt Microsoft Word-dokument, helt enkelt genom att uppdatera skriptet för datuppdatering på Document.Open () - hela processen kommer att ske bakom kulisserna.
Det betyder att du i många fall kan skapa det ursprungliga dokumentet en gång och behöver aldrig skapa det igen. Allt du behöver göra är att öppna det, och alla etiketter uppdateras automatiskt för dig med data från den uppdaterade Microsoft Excel-filen. Klicka bara på Skriv ut och skicka rapporten till din chef. Ett jobb på 30 minuter blev bara en minuts utskrift!
Kan du tänka på några andra häftiga användningsområden för denna dataintegrationsteknik med hjälp av VBA? Dela några av dina egna idéer och tankar i kommentarfältet nedan.
Bildkredit: Punyaphat Larpsomboon via Shutterstock.com