Automatizați rapoartele în Excel

Una dintre multele caracteristici ale programului Microsoft Excel este automatizarea rapoartelor. Puteți crea foi de calcul interactive pentru a facilita introducerea altor date în foi de lucru și de asemenea puteți automatiza generarea de rapoarte din acele foi de calcul. Pentru ambele funcții aveți nevoie de puțină cunoaștere în Visual Basic. Pașii pentru efectuarea ambelor sarcini sunt descrise mai jos.

metodă

Metoda 1
Creați o foaie de lucru interactivă

Imaginea intitulată Automate Reports in Excel Pasul 1
1
Determinați aspectul foii de calcul. Foaia dvs. de lucru ar trebui aranjată astfel încât utilizatorii care o utilizează să poată găsi rapid câmpurile de care au nevoie pentru a introduce date.
  • Puteți alinia coli orizontal sau vertical. Majoritatea utilizatorilor găsesc un aspect vertical mai confortabil, mai ales dacă doresc să-l imprime.
  • Imaginea intitulată Automate Reports in Excel Pasul 2
    2
    Creați etichetele pentru foaia de lucru. Pentru câmpurile de intrare, trebuie să existe o etichetă în partea de sus a fiecărei coloane și, de asemenea, în coloana din stânga pentru rânduri.
  • Imaginea intitulată Automate Reports in Excel Pasul 3
    3
    Apăsați simultan pe Alt și pe F11. Aceasta deschide editorul Microsoft Visual Basic.
  • Imaginea intitulată Automate Reports in Excel Pasul 4
    4
    Faceți dublu clic pe "Această foaie de lucru" sub "Proiect - Proiect VBA" în colțul din stânga sus. Aceasta deschide o fereastră de programare în zona principală a editorului.
  • Imaginea intitulată Automate Reports in Excel Pasul 5
    5
    Alegeți "Procedură" din meniul "Inserare". Aceasta afișează caseta de dialog Adăugare procedură.
  • Imaginea intitulată Automate Reports in Excel Pasul 6
    6
    În câmpul Nume, introduceți un nume al procedurii. Iartă-i un nume semnificativ, cum ar fi "Cheltuieli totale" când foaia de calcul interactivă este utilizată pentru a depune cheltuieli de călătorie. Faceți clic pe OK pentru a închide fereastra de dialog.
  • Numele procedurii nu poate conține spații, dar puteți pune în schimb o subliniere (_).
  • Când ați închis caseta de dialog, veți vedea o linie denumită "Public Sub" urmată de numele procedurii dvs. Sub această linie există un spațiu și cuvintele "End Sub".
  • Imaginea intitulată Automate Reports in Excel Pasul 7
    7
    Introduceți codul pentru fiecare câmp de introducere în foaia de lucru. Scrieți două rânduri de cod pentru fiecare intrare.
  • Prima linie de cod este "Range (" nume de celule "). Selectați", unde "numele celulei" reprezintă celula în care se introduce câmpul de intrare. Aceasta ar trebui să fie celula direct din dreapta unei legende - dacă aveți o legendă în celula A2, ați pune un câmp de intrare în Domeniul B2 (Intervalul "B2"). Specificați ghilimele în jurul numelui celulei, dar nu în jurul întregii instrucțiuni.
  • A doua linie de cod are forma „ActiveCell.Value = InputBox (“ prompt de intrare „),“ în cazul în care „prompt de intrare“ este textul care este afișat pentru a spune utilizatorului ce tip de date este de a intra în celula de intrare. Dacă de ex celula de intrare pentru cheltuielile de masă, vă „prompt de intrare“ va înlocui cu „Dă suma tuturor mesele, inclusiv vârful pe“. (Ia ghilimelele pe textul prompt de intrare, dar nu în jurul valorii de întreaga comandă.)
  • Imaginea intitulată Automate Reports in Excel Pasul 8
    8
    Introduceți codul pentru fiecare câmp de calcul. Utilizați aceleași două linii ca mai sus, dar de această dată ActiveCell.Value este un calcul sau o funcție numerică, cum ar fi SUM, în loc de funcția InputBox, care afișează promptul de intrare.
  • Imaginea intitulată Automate Reports in Excel Pasul 9
    9
    Adăugați o linie de cod pentru a salva foaia de lucru interactivă. Formatul este „ActiveWorkbook.SaveAs Nume fișier: =“ numefișier.xls „în cazul în care“ File Name „Pentru numele foaia de lucru interactiv. (Dă ghilimele în jurul valorii de“ numefișier.xls „, dar nu în întregime declarația.)
  • Dacă Excel 2007 sau face mai târziu, puteți utiliza extensia „.xls“ cu „xlsx“ înlocui, dar dacă cineva unul dintre oamenii care vor folosi foaia de lucru interactiv, Excel 2003 sau are înainte, el nu poate face fără foaia de calcul utilizați plugin-ul pentru lectură.
  • Imaginea intitulată Automate Reports in Excel Pasul 10
    10
    Apăsați simultan tastele Alt și Q. Acest lucru încheie editorul Visual Basic.
  • Imaginea intitulată Automate Reports in Excel Pasul 11


    11
    Apăsați simultan tastele Alt și F8. Aceasta deschide caseta de dialog Macro.
  • Imaginea intitulată Automate Reports in Excel Pasul 12
    12
    Faceți clic pe numele procedurii dvs. din lista de macro-uri. Dacă dvs. este singura procedură din listă, aceasta va fi marcată automat.
  • Imaginea intitulată Automate Reports in Excel Pasul 13
    13
    Faceți clic pe butonul Opțiuni. Vi se va cere să introduceți o cheie pe care o utilizați ca o comandă rapidă împreună cu tasta Ctrl. Alegeți o literă care nu este încă folosită ca o comandă rapidă de la tastatură, de ex. "e" pentru "intrare".
  • Imaginea intitulată Automate Reports in Excel Pasul 14
    14
    Faceți clic pe "OK" pentru a închide fereastra de dialog. Acum puteți distribui foaia de calcul interactivă celor care o vor folosi. Odată deschise, pot utiliza comanda rapidă de la tastatură pentru a permite intrarea și urma instrucțiunile create pentru a introduce datele.
  • Metoda 2
    Automatizați generarea de rapoarte

    Imaginea intitulată Automate Reports in Excel Pasul 15
    1
    Asigurați-vă un raport pivot. Tabelele pivot sumarizează datele astfel încât să puteți compara numerele și tendințele spot. Pivotul dvs. ar trebui să fie legat de datele din altă parte a foii de lucru sau de cele pe care le-ați importat dintr-o altă bază de date.
  • Imaginea intitulată Automate Reports in Excel Pasul 16
    2
    Scrieți un script Visual Basic pentru a deschide și a închide raportul. Scriptul dvs. trebuie să îndeplinească funcțiile de mai jos. Fiecare funcție este descrisă între paranteze urmată de codul de implementare. Dacă scrieți codul real, scrieți-l într-un singur bloc, înlocuiți numele eșantioanelor cu propriile nume și nu utilizați parantezele care înfășoară întregul exemplu.
  • Deschideți foaia de lucru în modul numai pentru citire. [DIM XLAppSet XLApp = CreareObject ("Excel.App") xlapp.visible = falsexlapp.workbooks.open excelloc filename.xls, 3,]
  • Actualizați datele și salvați raportul, în acest caz ca un PDF cu o ștampilă de dată. [Truexlapp.activeworkbook.RefreshAllxlapp.activeworkbook.ExportAsFixedFormat xlTypePDF, pdfloc reportname_ DatePart (aaaa „Acum ()) ";" Dreapta ( "0" Data piesa ( "m" Acum ()), 2) ";" Dreapta ("0" Data piesa ( "d", acum ()), 2) ".pdf"] Dacă documentul dvs. de ieșire trebuie să fie într-un format diferit, înlocuiți ".pdf" cu extensia de fișier corectă pentru acest format.
  • Închideți foaia de lucru fără să o salvați și apoi închideți Excel. [xlQualityStandardxlapp.activeworkbook.close Falsexlapp.quit]
  • Utilizați ".xlsx" în loc de ".xls" ca extensie de fișier dacă fișierul dvs. de lucru a fost salvat în format Excel 2007 XML și după aceea.
  • Imaginea intitulată Automate Reports in Excel Pasul 17
    3
    Scrieți un script batch pentru a porni Scriptul Visual Basic. Este necesar ca Visual Basic Script să ruleze automat. Fără script-ul batch, scriptul VB trebuie să fie executat manual.
  • Scriptul dvs. ar fi în acest format, înlocuiți numele fișierului și folderului menționat cu dvs. și omiteți parantezele: [cscript / rologo fileloc script.vbs]
  • Imaginea intitulată Automate Reports in Excel Pasul 18
    4
    Scrieți un script batch pentru a verifica dacă fișierul de ieșire există în momentul în care a fost creat. Scriptul dvs. trebuie să îndeplinească funcțiile descrise mai jos. După fiecare funcție, este descris codul de implementare în paranteze. Dacă scrieți codul real, scrieți-l într-un singur bloc și înlocuiți numele exemplelor cu propriile nume. Lăsați coastele de închidere oprite.
  • A se vedea dacă există fișierul de ieșire. [Pentru / f "indicativele = 2-4 delims = /" %% un RReport în ( `data / t`), setați = numele unui raport %% _ c - %% a - %% b.pdf)] În cazul în care formatul de fișier de ieșire nu PDF, atunci „.pdf“, înlocuiți cu formatul de fișier corect.
  • Dacă fișierul există ieșire (raport), va trimite prin e-mail la oamenii care au nevoie de ele. [Dacă există pdfloc % RReport% (sendEmail -f -t [email protected] [email protected] -u este atașat raportul programat -m Raport Raport %%%. -a pdfloc % RReport% -s serverul dumneavoastră: parola de port -xu numele de utilizator -xp)]
  • Dacă fișierul de ieșire (raportul) nu există la specificat location`ll va trimite despre procedura, un mesaj pe care serviciul nu a reușit. [Else (trimite e-mail -f -t [email protected] [email protected] -u raport nu a rulat fișierul -m% RReport% nu există în pdfloc -s serverul tau: portul -xu parola numele de utilizator -xp) ]
  • Imaginea intitulată Automate Reports in Excel Pasul 19
    5
    Asigurați-vă că dosarul Desktop există pe computer. În ambele sisteme pe 32 de biți și pe 64 de biți, trebuie să verificați dacă există dosarul Desktop. Dacă nu, Excel și foaia dvs. de lucru vor trebui să fie deschise manual.
  • Amplasarea pe un sistem pe 32 de biți: c: windows system32 config systemprofile
  • Amplasarea pe un sistem pe 64 de biți: c: windows syswow64 config systemprofile
  • Imaginea intitulată Automate Reports in Excel Pasul 20
    6
    Programați o sarcină pentru a rula scripturile după cum este necesar. Scripturile de lot ar trebui să ruleze consecutiv, indiferent dacă cineva utilizează computerul sau nu. Permisiunea trebuie setată la cea mai înaltă setare posibilă.
  • Sfaturi

    • Sarcinile programate sunt cel mai bine efectuate de un server, de obicei printr-un cont de sistem cu privilegii de administrator. Singurul dezavantaj al executării sarcinilor printr-un cont de sistem este că nu există o interfață cu utilizatorul - dar sarcini automate ar trebui să ruleze în mod obișnuit în fundal, fără ca utilizatorul să fie conștient de acesta.
    Distribuiți pe rețelele sociale:

    înrudit