Generer rapporter automatisk i excel

En av hovedfunksjonene til Microsoft Excel er muligheten til å generere rapporter. Du kan lage interaktive regneark for å gjøre det enklere for andre brukere å legge inn data i en arbeidsbok, og du kan også generere rapporter automatisk. Begge funksjonene krever litt kunnskap om Visual Basic. Følgende er trinnene for å utføre begge oppgavene.

Trinn

Metode 1 av 2: Lage et interaktivt regneark

Bilde med tittelen Automatiser rapporter i Excel Trinn 1
1. Bestem utformingen av regnearket ditt. Regnearket bør organiseres på en slik måte at andre brukere raskt kan finne feltene for å legge inn data.
  • Du kan orientere regnearket horisontalt eller vertikalt. De fleste brukere vil finne en vertikal layout lettere å jobbe med, spesielt hvis du vil at de skal kunne skrive ut regnearket.
Bilde med tittelen Automatiser rapporter i Excel Trinn 2
2. Lag overskrifter for regnearket. Plasser en overskrift over hver kolonne, samt i cellen til venstre for hver celle i kolonnen der du vil plassere inndatafeltene.
Bilde med tittelen Automatiser rapporter i Excel Trinn 3
3. Trykk på Alt- og F11-tastene samtidig. Dette åpner Microsoft Visual Basic-editoren.
Bilde med tittelen Automatiser rapporter i Excel Trinn 4
4. Dobbeltklikk på "Denne arbeidsboken" i vinduet "Prosjekt-VBA-prosjekt" øverst til venstre. Dette vil åpne et kodingsvindu i hovedredigeringsvinduet.
Bilde med tittelen Automatiser rapporter i Excel Trinn 5
5. Plukke ut "Fremgangsmåte" via Sett inn i hovedmenyen. Dialogboksen Sett inn prosedyre åpnes.
Bilde med tittelen Automatiser rapporter i Excel Trinn 6
6. Skriv inn et navn for prosedyren i Navn .-feltet. Gi prosedyren et meningsfylt navn, som f.eks "Totale utgifter" hvis det interaktive regnearket ditt skal brukes til å spore reiseutgifter. Klikk OK for å lukke dialogboksen.
  • Prosedyrenavnet ditt kan ikke inneholde mellomrom, men du kan bruke en bindestrek ( _ ) i stedet for et mellomrom.
  • Når dialogboksen `Sett inn prosedyre` lukkes, vil du se en linje `Public Sub` etterfulgt av navnet på prosedyren. Under linjen vil du se et mellomrom og ordene `End Sub`.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 7
    7. Skriv inn koden for hvert inndatafelt i regnearket. Du skal skrive to linjer med kode for hver inngang.
  • Den første linjen med kode er `Range("cellenavn").Velg`, hvor "cellenavn" cellen skal representere hvor inndatafeltet skal plasseres. Dette er cellen rett til høyre for en tekstetikett; hvis det er en tekstetikett i celle A2, vil et inndatafelt bli plassert i celle B2, så (Range("B2").Plukke ut). Sørg for at anførselstegnene er rundt cellenavnet, men ikke rundt hele kodeblokken.
  • Den andre linjen med kode ser ut som `ActiveCell.Verdi=InputBox("InputPrompt")`, sant "InputPrompt" er teksten som vises til brukeren for å indikere hva slags data som skal legges inn. For eksempel, hvis kostnaden for måltider må legges inn i inndatacellen, erstatter du "InputPrompt" av "Angi totalen av alle måltider, inkludert tips." (Plasser anførselstegn rundt inndatateksten, men ikke rundt hele kommandoen).
    Bilde med tittelen Automatiser rapporter i Excel Trinn 8
    8. Skriv inn kode for hvert beregningsfelt. Igjen bruker du de samme to linjene som ovenfor, men denne gangen ActiveCell.Verdi er en beregningsfunksjon, for eksempel SUM, i stedet for InputBox-funksjonen som brukes til å vise inndatameldingen.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 9
    9. Legg til en kodelinje for å lagre det interaktive regnearket ditt. Koden er `ActiveWorkbook.Lagre som filnavn:="filnavn.xls" `, hvorved "filnavn" er navnet på det interaktive regnearket ditt. (Sett anførselstegn rundt "filnavn.xls", men ikke rundt hele eksemplet).
    Hvis du har Excel 2007 eller nyere, kan du bruke output `.xls` erstattet av `.xlsx`, men hvis noen av brukerne av det interaktive regnearket ditt bruker Excel 2003 eller tidligere, vil de ikke kunne bruke regnearket uten en plugin.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 10
    10. Trykk Alt og Q samtidig. Lukker Visual Basic-redigeringsprogrammet.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 11
    11. Trykk Alt og F8 samtidig. Dette åpner makrovinduet.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 12
    12. Klikk på navnet på prosedyren i makrolisten. Hvis dette er den eneste prosedyren i listen, velges den automatisk.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 13
    1. 3. Klikk på Alternativer-knappen. Du vil nå bli bedt om å velge et tegn for å lage en tastekombinasjon med Ctrl-tasten. Velg en meningsfull bokstav som ennå ikke er brukt som snarvei, for eksempel en "i" for "inndata".
    Bilde med tittelen Automatiser rapporter i Excel Trinn 14
    14. Klikk "OK" for å lukke vinduet Makroalternativer. Du kan nå dele ut det interaktive regnearket ditt til potensielle brukere. Etter å ha åpnet den, kan de bruke hurtigtasten for å aktivere dataregistrering, og følge varslene du opprettet for dataregistrering.

    Metode 2 av 2: Automatiser rapportgenerering

    Bilde med tittelen Automatiser rapporter i Excel Trinn 15
    1. Gjør rapporten om til en pivottabell. Pivottabeller er laget for å lage oversikter over data slik at du kan sammenligne tall og oppdage trender. Pivottabellen din skal være koblet til data andre steder i regnearket ditt, eller importert fra en database.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 16
    2. Skriv et Visual Basic-skript for å åpne og lukke rapporten. Skriptet skal utføre funksjonene nedenfor. Hver funksjon er beskrevet etterfulgt av koden som skal implementeres i hakeparenteser. Når du skriver faktisk programkode, skriv dette i en enkelt blokk, bytt ut eksempelnavnene med dine egne navn, og ikke ta med hakeparentesene som omgir hele eksemplet.
  • Åpne regnearket i skrivebeskyttet modus. [DIM XLAppSet XLApp=CreateObject("utmerke.app")xlapp.synlig=falsekslapp.arbeidsbøker.åpne \excellocfilnavn.xls,3,]
  • Oppdater dataene og lagre rapporten (i dette eksemplet som PDF med datostempel). [Truexlapp.aktiv arbeidsbok.RefreshAllxlapp.aktiv arbeidsbok.ExportAsFixedFormat xlTypePDF, \pdflocrapportnavn_ & DatoPart("åååå, nå()) & "-" & Ikke sant("0" & DatoPart("m",Nå()),2) & "-" Ikke sant("0" & DatoPart("d",Nå()),2) & ".pdf"] Er utdatadokumentet ditt i et annet format, erstatt `.pdf` deretter gjennom den riktige endingen for det formatet.
  • Lukk regnearket uten å lagre det, og lukk Excel. [xlQualityStandardxlapp.aktiv arbeidsbok.lukk Falsexlapp.slutte]
  • Bruk `.xlsx` i stedet for `.xls` som utdata for regnearkets navn, hvis regnearket ditt er lagret i det XML-baserte formatet til Excel 2007 og nyere.
    Bilde med tittelen Automatiser rapporter i Excel Trinn 17
    3. Skriv et batchskript i Notisblokk (og lagre det senere som `.bat`) for å starte Visual Basic-skriptet. Dette er nødvendig for at Visual Basic-skriptet skal kjøre automatisk. Uten batchskriptet må VB-skriptet kjøres manuelt.
    Hvis skriptet ditt er i dette formatet, bytt ut den angitte mappen og filnavnet med ditt eget, og slipp hakeparentesene: [cscript /nologo \filelocscript.vbs]
    Bilde med tittelen Automatiser rapporter i Excel Trinn 18
  • 4. Skriv et batch-skript for å sjekke om utdatafilen eksisterer når den opprettes. Skriptet skal beskrive funksjonene nedenfor. Hver funksjon etterfølges av kode som skal implementeres i hakeparenteser. Når du skal skrive selve koden, gjør det i én blokk, og bytt ut navnene på eksemplene med dine egne navn, uten hakeparenteser.
  • Sjekk om utdatafilen eksisterer. [for /f "tokens=2-4 delims=/ " %%a i (`dato /t`) sett rreport=rapportnavn_%%c-%%a-%%b.pdf)] Hvis utdatafilen ikke er en PDF, bytt ut ".pdf" deretter ved høyre forlengelse.
  • Hvis utdatafilen/rapporten eksisterer, send den på e-post til personene som trenger den. [Hvis eksisterer \pdfloc%rrapport% ( sendemail -f [email protected] -t [email protected] -u Planlagt rapport -m Rapport %%rapport% er vedlagt. -a pdfloc%rreport% -s din server:port -xu brukernavn -xp passord)]
  • Hvis utdatafilen/rapporten ikke eksisterer på det spesifikke stedet, be prosedyren sende deg en melding om at sendingen mislyktes. [ Else ( sendemail -f [email protected] -t [email protected] -u Rapport kjørte ikke -m fil %rreport% eksisterer ikke i \pdfloc -s din server:port -xu brukernavn -xp passord)]
    Bilde med tittelen Automatiser rapporter i Excel Trinn 19
  • 5. Sjekk om "Desktop"-mappen finnes på datamaskinen. Du må sjekke at Desktop-mappen finnes for både et 32-biters og et 64-biters system. Hvis du ikke gjør dette, må Excel og regnearket ditt åpnes manuelt.
  • Plassering på 32-biters system: c:windowssystem32configsystemprofile
  • Plassering på 64-biters system: c:windowssyswow64configsystemprofile
    Bilde med tittelen Automatiser rapporter i Excel Trinn 20
  • 6. Planlegg om nødvendig en oppgave for å kjøre skriptene. Batch-skriptene må kjøres kontinuerlig i rekkefølge uavhengig av om noen bruker datamaskinen eller ikke. Effekten bør settes så høyt som mulig.

    Tips

    Planlagte oppgaver kjøres best fra en server, vanligvis fra en systemkonto med administratorrettigheter. Den eneste ulempen med å kjøre oppgaver fra en systemkonto er at ingen brukergrensesnitt er tilgjengelig; men automatiserte oppgaver kjører vanligvis i bakgrunnen, uten at brukeren merker det.

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