Generera rapporter automatiskt i excel

En av huvudfunktionerna i Microsoft Excel är möjligheten att generera rapporter. Du kan skapa interaktiva kalkylblad för att göra det enklare för andra användare att ange data i en arbetsbok, och du kan även generera rapporter automatiskt. Båda funktionerna kräver viss kunskap om Visual Basic. Följande är stegen för att utföra båda uppgifterna.

Steg

Metod 1 av 2: Skapa ett interaktivt kalkylblad

Bild med titeln Automatisera rapporter i Excel Steg 1
1. Bestäm layouten för ditt kalkylblad. Kalkylarket bör vara organiserat på ett sådant sätt att andra användare snabbt kan hitta fälten för inmatning av data.
  • Du kan orientera ditt kalkylblad horisontellt eller vertikalt. De flesta användare kommer att finna en vertikal layout lättare att arbeta med, särskilt om du vill att de ska kunna skriva ut kalkylarket.
Bild med titeln Automatisera rapporter i Excel Steg 2
2. Skapa rubriker för kalkylarket. Placera en rubrik ovanför varje kolumn, samt i cellen till vänster om varje cell i kolumnen där du vill placera inmatningsfälten.
Bild med titeln Automatisera rapporter i Excel Steg 3
3. Tryck på Alt- och F11-tangenterna samtidigt. Detta öppnar Microsoft Visual Basic-redigeraren.
Bild med titeln Automatisera rapporter i Excel Steg 4
4. Dubbelklicka på "Denna arbetsbok" i fönstret "Projekt-VBA-projekt" övre vänstra. Detta öppnar ett kodningsfönster i huvudredigeringsfönstret.
Bild med titeln Automatisera rapporter i Excel Steg 5
5. Välj "Procedur" via Infoga i huvudmenyn. Dialogrutan Infogningsprocedur öppnas.
Bild med titeln Automatisera rapporter i Excel Steg 6
6. Ange ett namn för proceduren i fältet Namn. Ge proceduren ett meningsfullt namn, som t.ex "Totala utgifter" om ditt interaktiva kalkylblad kommer att användas för att spåra resekostnader. Klicka på OK för att stänga dialogrutan.
  • Ditt procedurnamn kan inte innehålla mellanslag, men du kan använda ett bindestreck ( _ ) istället för ett mellanslag.
  • När dialogrutan `Infoga procedur` stängs, kommer du att se en rad `Public Sub` följt av namnet på proceduren. Under raden ser du ett mellanslag och orden `End Sub`.
    Bild med titeln Automatisera rapporter i Excel Steg 7
    7. Ange koden för varje inmatningsfält i kalkylarket. Du kommer att skriva två rader kod för varje ingång.
  • Den första raden i koden är `Range("cellnamn").Välj`, var "cellnamn" cellen ska representera var inmatningsfältet kommer att placeras. Detta är cellen omedelbart till höger om en textetikett; om det finns en textetikett i cell A2, kommer ett inmatningsfält att placeras i cell B2, så (Range("B2").Välj). Se till att citattecken är runt cellnamnet, men inte runt hela kodblocket.
  • Den andra raden med kod ser ut som `ActiveCell.Value=InputBox("InputPrompt")`, Sann "InputPrompt" är den text som visas för användaren för att indikera vilken typ av data som ska matas in. Om kostnaden för måltider till exempel måste anges i inmatningscellen byter du ut "InputPrompt" av "Ange summan av alla måltider, inklusive tips." (Placera citattecken runt inmatningstexten, men inte runt hela kommandot).
    Bild med titeln Automatisera rapporter i Excel Steg 8
    8. Ange kod för varje beräkningsfält. Återigen använder du samma två rader som ovan, men den här gången ActiveCell.Värde är en beräkningsfunktion, såsom SUM, istället för funktionen InputBox som används för att visa inmatningsmeddelandet.
    Bild med titeln Automatisera rapporter i Excel Steg 9
    9. Lägg till en kodrad för att spara ditt interaktiva kalkylblad. Koden är `ActiveWorkbook.Spara som filnamn:="filnamn.xls" `, varvid "filnamn" är namnet på ditt interaktiva kalkylblad. (Sätt citattecken runt "filnamn.xls", men inte runt hela exemplet).
    Om du har Excel 2007 eller senare kan du använda output `.xls` ersatt med `.xlsx`, men om några av användarna av ditt interaktiva kalkylblad använder Excel 2003 eller tidigare, kommer de inte att kunna använda kalkylarket utan en plugin.
    Bild med titeln Automatisera rapporter i Excel Steg 10
    10. Tryck på Alt och Q samtidigt. Stänger Visual Basic-redigeraren.
    Bild med titeln Automatisera rapporter i Excel Steg 11
    11. Tryck på Alt och F8 samtidigt. Detta öppnar makrofönstret.
    Bild med titeln Automatisera rapporter i Excel Steg 12
    12. Klicka på namnet på din procedur i makrolistan. Om detta är den enda proceduren i listan kommer den att väljas automatiskt.
    Bild med titeln Automatisera rapporter i Excel Steg 13
    13. Klicka på knappen Alternativ. Du kommer nu att bli ombedd att välja ett tecken för att skapa en tangentkombination med Ctrl-tangenten. Välj en meningsfull bokstav som ännu inte används som en genväg, till exempel ett `i` för `indata`.
    Bild med titeln Automatisera rapporter i Excel Steg 14
    14. Klicka på "OK" för att stänga fönstret Macro Options. Du kan nu dela ut ditt interaktiva kalkylblad till potentiella användare. Efter att ha öppnat den kan de använda kortkommandot för att aktivera datainmatning och följa aviseringarna du skapade för datainmatning.

    Metod 2 av 2: Automatisera rapportgenerering

    Bild med titeln Automatisera rapporter i Excel Steg 15
    1. Förvandla din rapport till en pivottabell. Pivottabeller är designade för att skapa översikter av data så att du kan jämföra siffror och se trender. Din pivottabell bör vara länkad till data någon annanstans i ditt kalkylblad eller importeras från en databas.
    Bild med titeln Automatisera rapporter i Excel Steg 16
    2. Skriv ett Visual Basic-skript för att öppna och stänga rapporten. Skriptet bör utföra funktionerna nedan. Varje funktion beskrivs följt av koden som ska implementeras inom hakparenteser. När du skriver faktisk programkod, skriv detta i ett enda block, ersätt exempelnamnen med dina egna namn och inkludera inte hakparenteserna som omger hela exemplet.
  • Öppna kalkylarket i skrivskyddat läge. [DIM XLAppSet XLApp=CreateObject("Excel.app")xlapp.synlig=falsexlapp.arbetsböcker.öppna \excellocfilnamn.xls,3,]
  • Uppdatera data och spara rapporten (i detta exempel som PDF med datumstämpel). [Truexlapp.aktiv arbetsbok.RefreshAllxlapp.aktiv arbetsbok.ExportAsFixedFormat xlTypePDF, \pdflocrapportnamn_ & DatePart("åååå, nu()) & "-" & höger("0" & DatePart("m",Nu()),2) & "-" höger("0" & DatePart("d",Nu()),2) & ".pdf"] Är ditt utdatadokument i ett annat format, ersätt `.pdf` sedan genom lämplig ändelse för det formatet.
  • Stäng kalkylarket utan att spara det och stäng Excel. [xlQualityStandardxlapp.aktiv arbetsbok.stäng Falsexlapp.sluta med]
  • Användning `.xlsx` istället för `.xls` som utdata för kalkylarkets namn, om ditt kalkylblad är sparat i det XML-baserade formatet Excel 2007 och senare.
    Bild med titeln Automatisera rapporter i Excel Steg 17
    3. Skriv ett batchskript i Anteckningar (och spara det senare som `.bat`) för att starta Visual Basic-skriptet. Detta är nödvändigt för att Visual Basic-skriptet ska köras automatiskt. Utan batchskriptet måste VB-skriptet köras manuellt.
    Om ditt skript är i det här formatet, ersätt den angivna mappen och filnamnet med ditt eget, och utelämna hakparenteserna: [cscript /nologo \filelocscript.vbs]
    Bild med titeln Automatisera rapporter i Excel Steg 18
  • 4. Skriv ett batchskript för att kontrollera om utdatafilen finns när den skapas. Skriptet ska beskriva funktionerna nedan. Varje funktion följs av kod som ska implementeras inom hakparenteser. När du ska skriva själva koden, gör det i ett block och ersätt namnen på exemplen med dina egna namn, utan hakparenteser.
  • Kontrollera om utdatafilen finns. [för /f "tokens=2-4 delims=/ " %%a in (`datum /t`) ställ in rreport=rapportnamn_%%c-%%a-%%b.pdf)] Om utdatafilen inte är en PDF, byt ut ".pdf" sedan genom den högra förlängningen.
  • Om utdatafilen/rapporten finns, maila den till de personer som behöver den. [Om det finns \pdfloc%rreport% (sändamail -f avsändare@senderdomän.com -t [email protected] -u Schemalagd rapport -m Rapport %%rapport% bifogas. -a pdfloc%rreport% -s din server:port -xu användarnamn -xp lösenord)]
  • Om utdatafilen/rapporten inte finns på den specifika platsen, låt proceduren skicka ett meddelande om att sändningen misslyckades. [ Else ( sendmail -f [email protected] -t avsändare@senderdomän.com -u Rapporten kördes inte -m filen %rreport% finns inte i \pdfloc -s din server:port -xu användarnamn -xp lösenord)]
    Bild med titeln Automatisera rapporter i Excel Steg 19
  • 5. Kontrollera om mappen "Desktop" finns på datorn. Du måste kontrollera att skrivbordsmappen finns för både ett 32-bitars och ett 64-bitars system. Om du inte gör detta måste Excel och ditt kalkylblad öppnas manuellt.
  • Plats på 32-bitars system: c:windowssystem32configsystemprofile
  • Plats på 64-bitars system: c:windowssyswow64configsystemprofile
    Bild med titeln Automatisera rapporter i Excel Steg 20
  • 6. Om det behövs, schemalägg en uppgift för att köra skripten. Batchskripten måste köras kontinuerligt i följd oavsett om någon använder datorn eller inte. Effekten bör ställas in så högt som möjligt.

    Tips

    Schemalagda uppgifter körs bäst från en server, vanligtvis från ett systemkonto med administratörsbehörighet. Den enda nackdelen med att köra uppgifter från ett systemkonto är att inget användargränssnitt är tillgängligt; men automatiserade uppgifter körs vanligtvis i bakgrunden, utan att användaren märker det.

    Оцените, пожалуйста статью