Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Recenzii
  • Exemple de macrocomenzi gata făcute. Exemple de macrocomandă Excel

Exemple de macrocomenzi gata făcute. Exemple de macrocomandă Excel

Obiectiv -Învață operatori de bază și implementează constructe de programare de bază în limbajul VBA.

4.1 Etapele de bază ale lucrului cu programe vba în Excel

Pentru a pregăti și executa un program VBA, trebuie să faceți următoarele:

    în Excel, selectați comanda din meniu Serviciu - Macro - EditorVizualDe bază;

    în fereastra care apare, selectați comanda din meniu IntroduceModul... Este creat un modul, adică, în termeni simpli, se deschide o fereastră în care puteți introduce textul programului.

La începutul modulului, poate fi specificată o instrucțiune OpțiuneExplicit... Dacă este specificat, atunci toate variabilele utilizate în program vor trebui declarate în instrucțiune Dim(pentru mai multe detalii vezi subsecțiunea 4.3).

În unele cazuri, în funcție de setarea mediului VBA, instrucțiunea OpțiuneExplicit este indicat automat la începutul modulului. Dacă programatorul dorește să folosească variabile fără a le declara într-o declarație Dim, apoi instrucțiunea OpțiuneExplicit trebuie eliminat.

Pentru a rula programul pentru execuție, selectați comanda din meniu Run - Run Sub / UserForm.

4.2 Cel mai simplu exemplu de program vba

Exemplul 4.1- Programul care ridică numărul specificat A la gradul specificat b.

Dim a ca single, b ca single

a = InputBox („Introduceți baza:”)

b = InputBox („Introduceți un exponent:”)

x = a ^ b „Exponentiație

MsgBox („Rezultatul este” și x)

Iată cuvântul Sub indică începutul procedurii; numele ei în acest caz este grund4_1 ... Un program VBA constă întotdeauna dintr-una sau mai multe proceduri (în acest caz, una).

Caracterul „(ghilimele simple) marchează începutul unui comentariu. Textul comentariului poate fi orice.

Dim- operator de declarare variabilă. În acest caz, se indică faptul că variabilele Ași b sunt de tip Singur... acestea. pot fi numere întregi și fracționale. Tipurile de date și declarațiile variabilelor vor fi discutate mai detaliat în Secțiunea 4.3.

InputBox- o functie pentru introducerea valorii unei variabile. Linia A = InputBox(„Intră în bază:”) înseamnă că valoarea variabilei este introdusă A; mesajul este afișat pe ecran "Intra in baza:"... Linia X = A^ b- operator de atribuire: se calculează valoarea părții din dreapta (în acest caz, variabila A ridicat la putere b), iar rezultatul este atribuit variabilei specificate în stânga (în acest caz, variabila X). Linia MsgBox(“Rezultatul este” &X) înseamnă că mesajul este afișat pe ecran "Rezultatul este egal"și valoarea variabilei X.

Notă - Semnează & în funcțiune MsgBox este destinat concatenării mai multor elemente de date care trebuie afișate pe ecran, în acest exemplu - șiruri "Rezultatul este egal"și variabilă X... În mod similar semnează & poate fi folosit în funcție InputBox(exemple de astfel de utilizare vor fi date mai jos). Înainte de semn & și trebuie urmate de spații.

Mai multe instrucțiuni VBA pot fi plasate pe o singură linie. Pentru a face acest lucru, ele sunt separate prin două puncte. Deci, programul din exemplul 4.1 ar putea fi scris, de exemplu, după cum urmează:

„Primul exemplu de program VBA

Dim a ca single, b ca single

a = InputBox („Introduceți baza:”): b = InputBox („Introduceți exponentul:”)

x = a ^ b: MsgBox („Rezultatul este” & x) „Exponențiați și scoateți rezultatul

Acest exemplu folosește o procedură numită subrutină. Această procedură începe cu cuvântul Sub... Există întotdeauna cel puțin o subrutină într-un program VBA. În plus, există un alt tip de procedură în VBA - funcții. O procedură de funcție începe cu cuvântul Funcţie... Utilizarea unor astfel de proceduri va fi discutată în subsecțiunea 4.9.

(Visual Basic pentru aplicare)

Limbajul de programare de bază - nivel înalt (interpret)

Vizual - conține instrumente vizuale pentru dezvoltarea de programe (coduri) care simplifică munca utilizatorului, vă permite să înregistrați coduri folosind un macro recorder.

Aplicația este o aplicație pentru sistemul software MSOffice împreună cu aplicațiile Word, Access, PowerPoint.

De ce ai nevoieVBA?

    Combină (integrează) aplicații, vă permite să gestionați munca altor aplicații fără a părăsi Excel, să încorporați obiecte din alte aplicații;

    Acțiunile disponibile utilizatorului pe foaia de lucru reprezintă 10% din toate capabilitățile Excel, VBA vă permite să automatizați activitatea proiectului.

VBA aparține numărului de limbaje orientate pe obiecte, adică obiectele sunt folosite la dezvoltarea proiectelor. Definiție: combinarea datelor și a codului într-un singur întreg De exemplu, elementul „Buton” și codul corespunzător asociat cu acest buton vor oferi o tranziție către o altă foaie a registrului de lucru.

Obiecte principaleVBA:

Aplicație (aplicația Excel în sine)

Caiet de lucru (registrul de lucru este fișierul dvs.)

WorkSheetFunction (asistent pentru funcții)

Fisa de lucru

Gamă

Diagramă

Stil

Frontieră

Interior (culoarea fundalului)

Font

Multe dintre unele obiecte alcătuiesc familii– Cărți de lucru, foi de lucru, diagrame.

Obiectele au proprietăți (acțiuni asupra obiectelor) și metode (acțiuni ale obiectelor înseși).

Să începem să ne familiarizăm cu instrumentele de vizualizare pentru dezvoltarea proiectelor în VBA. Acesta este Mediul Integrat de Dezvoltare a Aplicațiilor. Pentru a intra în acest mediu, selectați elementul de meniu ServiceMacroEditorVBA sau apăsați tastele ALT și F11 în același timp.

Componentele editorului VBA apar pe ecran:

Fereastra de proiect - Proiect VBA

Fereastra de proprietăți

Fereastra de cod

fereastra UserForm

Bare de instrumente

Fereastra Proiect – VBAProject (Fig. 1) arată structura proiectului dumneavoastră (fișier). Această fereastră este activată în editorul VBA prin alegerea comenzii ViewProjectExplorer sau prin apăsarea butonului ProjectExplorer sau prin apăsarea Ctrl + R

Orez. 1 Fereastra proiectului.

Fig. 2 Mediu integrat de dezvoltare a aplicațiilor

Fereastra de cod este pentru stocarea codului asociat obiectului. Fiecare obiect are propria sa fereastră, deci fiecare WorkSheet are propria sa fereastră de cod, WorkBook-ul are propria sa fereastră.

Crearea de funcții personalizate

Funcțiile personalizate sunt adăugate la lista standard WorkSheetFunction. Aceste funcții sunt create într-un modul special care însoțește obiectul WorkSheetFunction. Acest modul este adăugat la proiect folosind comanda InsertModule și va apărea în fereastra proiectului la nivelul aplicației dumneavoastră. Toate codurile scrise în acest modul vor apărea în categoria Funcții definite de utilizator din Expertul de funcții.

Deci, adăugăm un modul în proiectul nostru (InsertModule) și scriem textul programului în fereastra de cod a acestui modul:

y = Cos ((x + 2) / 2) ^ 2 + Exp (-2 * x) / (x ^ 2 + 1) ^ 0,5

Apoi mergem la foaia de lucru „1 graph”, în celula c2 vom apela noua funcție adăugată la master of functions - y (x). Lucrul cu această funcție nu este diferit de lucrul cu orice altă funcție. În primul pas, trebuie să selectați y (x) în categoria „Funcții definite de utilizator”, în al doilea pas, specificați celula A2 ca argumente x. Ca rezultat, formula = y (A2) va fi scrisă în celula C2. Trageți această formulă pe întregul interval A2: A17 așa cum se arată în Fig. 3. Desigur, rezultatul ar trebui să fie același cu cel pe care l-ați obținut calculând această funcție cu mijloacele obișnuite ale unei foi de lucru.

Fig 3. Funcția y (x), calculată în mod obișnuit și folosind o funcție personalizată.

Operatori de bază Vba - Operatori condiționali

Operatorii condiționali au 2 forme de notație:

1) O singură linie

DACĂ< условие>ATUNCI<оператор 1>

IF, THEN, ELSE - cuvinte de serviciu neschimbabile, între paranteze unghiulare< >textul utilizatorului, acesta este ceea ce scrieți în conformitate cu atribuirea, între paranteze drepte este o parte opțională, textul poate lipsi. Această formă este de obicei folosită în cazul acțiunilor simple, de exemplu, când se calculează modulul unui număr y = х = abs (s), puteți utiliza următorul operator:

DACA x> 0 ATUNCI y = x ALTE y = -x

2) În mai multe rânduri. În acest caz, instrucțiunea condiționată se termină în mod necesar cu instrucțiunea „ENDIF”

DACĂ<условие>ATUNCI

<оператор 1>

<оператор 2>

<оператор 3>

<оператор 4>

Această formă este utilizată pentru calcule complexe, de exemplu, atunci când se calculează rădăcinile unei ecuații pătratice. Să fie necesar să găsim rădăcinile ecuației a * x 2 + b * x + c = 0. După cum știți, dacă b 2 -4 * a * c ≥ 0, atunci rădăcinile sunt calculate prin formula
, dacă b 2 -4 * a * c ≤ 0, atunci nu există rădăcini în intervalul numerelor reale. Operatorul condiționat care implementează acest algoritm arată astfel:

DACA b ^ 2 -4 * a * c> = 0 ATUNCI

X1 = (-b + (b ^ 2 - 4 * a * c) ^ (1/2)) / (2 * a)

X2 = (-b + (b ^ 2 + 4 * a * c) ^ (1/2)) / (2 * a)

X1 = „FĂRĂ SOLUȚIE”

X2 = „FĂRĂ SOLUȚIE”

Exemple de scriere a funcțiilor personalizate în vba

Exemplul 1.

F
uncțiune y (x)

y = Cos ((x + 2) / 2) ^ 2 + Exp (-2 * x) / (x ^ 2 + 1) ^ 0,5

Funcția de sfârșit

Exemplul 2

Funcția z (x)

Dacă x< 0 Then

z = (1 + x + x ^ 2) / (1 + x ^ 2)

Dacă x< 1 Then

z = (1 + 2 * x / (1 + x ^ 2)) ^ (1/2)

z = 2 * Abs (0,5 + Sin (x))

Funcția de sfârșit

Cursul 2

    Proprietăți, metode și evenimente ale obiectelor VBA. Un exemplu de procedură care utilizează proprietăți individuale ale obiectului Aplicație.

    Elemente de control

    Tipuri de variabile în VBA

    Operatori de buclă

    Un exemplu de program cu funcții de tabulare

Proprietăți, metode și evenimente ale obiectelor VBA. Un exemplu de procedură care utilizează proprietăți individuale ale obiectului Aplicație.

Să continuăm cunoștințele noastre cu modelul obiect VBA. Toate obiectele sunt organizate într-o structură ierarhică subordonată obiectului de nivel superior „Aplicație”.

Aplicație . Cărți de lucru .

Dacă registrul de lucru (fișierul) „Grafica” este activ, atunci este suficient să indicați

Fișe de lucru ("Conținut"). Interval ("A1").

Dacă lucrați la foaia „Conținut”, atunci linkul va arăta ca Interval („A1”).

Toate obiectele au proprietăți, metode și evenimente.

Proprietate aceasta este o caracteristică a unui obiect (culoare, formă, nume, locație, vizibilitate etc.) Valoarea obiectului este setată după cum urmează:

Object.Property = valoarea proprietatii

Metodă este o acțiune efectuată asupra unui obiect (deschidere, închidere, ștergere). Regula de scriere a metodei:

Un obiect. Metodă

Eveniment este o acțiune recunoscută de un obiect (clic de mouse, dublu clic, apăsare de taste).

Esența programării în VBA constă din două concepte - un eveniment și un răspuns la acesta. Dacă utilizatorul influențează sistemul (apăsând un buton), care este un eveniment, atunci prin intermediul VBA este posibil să programați un răspuns - o acțiune de răspuns.

Iată câteva dintre proprietățile, metodele și evenimentele principalelor obiecte.

Proprietate

Obiect de aplicație

Legendă (titrare obiect)

Ieșire (ieșire din Excel

NewWorkBook (creați un nou registru de lucru)

AutoREcover

salva

SheetActivate (mergi la foaia de lucru)

ReferenceStyle (stil de referință)

Run (execuție macro)

WorkBookOpen (deschide un registru de lucru)

MemoryFree (informații despre RAM liberă)

Volatil (recalcul după modificarea celulelor din foaia de lucru)

WorkBookBeforeClose (închide un registru de lucru)

MemoryTotal (informații despre RAM totală)

Calculați (calcul în toate registrele de lucru deschise)

SheetBeforeDubleClick (dublu clic)

MemoryUsed (informații despre RAM-ul ocupat)

IpputBox (introducerea datelor)

SheetBeforeRightClick (clic dreapta)

CellDragAndDrop (glisați și plasați formule în celule)

Msgbox (mesaje de ieșire)

ActiveCell, ActiveSheet (celulă activă, foaie)

Celule (gamă de celule)

DisplayFormulaBar (afișează bara de formule)

DisplayScrollBar (afișează barele de defilare)

DisplayStatusBar (afișează bara de stare)

Proprietățile metodei Aplicație vă permit să setați în mod programatic valorile multor opțiuni din fereastra Instrumente / Opțiuni. De exemplu, puteți utiliza următoarele proceduri pentru a modifica vizualizarea implicită a ferestrei Excel, pentru a schimba titlul și pentru a dezactiva acțiunea de glisare și plasare a formulelor.

Aceste proceduri sunt înregistrate în modulul „Această carte” și sunt executate atunci când registrul de lucru este deschis și închis, adică atunci când sunt executate evenimentele Open și BeforeClose:

Private Sub workbook_open ()

„Titlul caietului de lucru

Application.Caption = „Kisa și Osya au fost aici”

„Culoarea de fundal a gamei A1: D1 -Roșu

„Delimitarea intervalului A1: D1 - linie punctată

„tragerea CellDragAndDrops este anulată

Application.CellDragAndDrop = Falsе

„Bara de formule este eliminată

Application.DisplayFormulaBar = False

„Barele de defilare sunt eliminate

Application.DisplayScrollBars = Fals

„Stilul link-ului R1C1 este setat

Application.ReferenceStyle = xlR1C1

„Private Sub Workbook_BeforeClose (Anulați ca boolean)

„Trasarea CellDragAndDrops este restabilită

Application.CellDragAndDrop = Adevărat

„Bara de formule este restaurată

Application.DisplayFormulaBar = Adevărat

„Barele de defilare sunt restaurate

Application.DisplayScrollBars = Adevărat

„Stilul link A1 este restaurat

Application.ReferenceStyle = xlA1

Puțini știu că prima versiune a popularului produs Microsoft Excel a apărut în 1985. De atunci, a trecut prin mai multe modificări și este solicitat de milioane de utilizatori din întreaga lume. În același timp, mulți oameni lucrează cu doar o mică parte din capacitățile acestui procesor de masă și chiar nu au idee cum le-ar putea fi ușurată viața prin programarea în Excel.

Ce este VBA

Programarea în Excel se realizează folosind limbajul de programare Visual Basic for Application, care este inițial încorporat în cel mai faimos procesor de masă de la Microsoft.

Specialiștii atribuie avantajelor sale ușurința comparativă de dezvoltare. După cum arată practica, chiar și utilizatorii care nu au abilități profesionale de programare pot stăpâni elementele de bază ale VBA. Una dintre caracteristicile VBA este execuția scriptului în mijlocul aplicațiilor de birou.

  • mergeți din nou la linia „Macro-uri”;
  • selectați „Macro 1” din listă;
  • apăsați „Run” (aceeași acțiune este pornită prin pornirea combinației de taste „Ctrl + hh”).

Ca urmare, are loc acțiunea, care a fost efectuată în procesul de înregistrare a macro-ului.

Este logic să vedem cum arată codul. Pentru a face acest lucru, reveniți la linia „Macro-uri” și faceți clic pe „Schimbare” sau „Enter”. Ca rezultat, ajung într-un mediu VBA. De fapt, codul macro în sine este situat între liniile Sub Macro1 () și End Sub.

Dacă a fost efectuată copierea, de exemplu, din celula A1 în celula C1, atunci una dintre liniile de cod va arăta ca Interval („C1”). În traducere arată ca „Range (" C1 "). Selectați, cu alte cuvinte, se transferă în VBA Excel, în celula C1.

Partea activă a codului este completată de comanda ActiveSheet.Paste. Înseamnă scrierea conținutului celulei selectate (în acest caz, A1) în celula evidențiată C1.

Exemplul 2

Buclele VBA vă ajută să creați diverse macrocomenzi în Excel.

Buclele VBA vă ajută să creați o varietate de macrocomenzi. Să presupunem că avem o funcție y = x + x2 + 3x3 - cos (x). Este necesar să creați o macrocomandă pentru a obține graficul acesteia. Acest lucru se poate face numai folosind bucle VBA.

Valorile inițiale și finale ale argumentului funcției sunt luate ca x1 = 0 și x2 = 10. În plus, este necesar să introduceți o constantă - valoarea pentru pasul de schimbare a argumentului și valoarea inițială pentru contor.

Toate exemplele de macrocomenzi VBA Excel sunt create folosind aceeași procedură ca cea prezentată mai sus. În acest caz particular, codul arată astfel:

Faceți în timp ce x1< x2 (цикл будeт выполняться пока вeрно выражeниe x1 < x2)

y = x1 + x1 ^ 2 + 3 * x1 ^ 3 - Cos (x1)

Celule (i, 1) .Valoare = x1 (valoarea lui x1 este scrisă în celula cu coordonatele (i, 1))

Celule (i, 2) .Valoare = y (valoarea lui y este scrisă în celula cu coordonatele (i, 2))

i = i + 1 (contorul este activ);

x1 = x1 + shag (argumentul este schimbat de dimensiunea pasului);

Ca rezultat al rulării acestei macrocomenzi în Excel, obținem două coloane, prima dintre care conține valorile pentru x, iar a doua pentru y.

Apoi este trasat un grafic folosindu-le într-un mod standard pentru Excel.

Exemplul 3

Pentru a implementa bucle în VBA Excel 2010, precum și în alte versiuni, împreună cu construcția Do While deja citată, se folosește For.

Luați în considerare un program care creează o coloană. În fiecare dintre celulele sale se vor scrie pătratele numărului liniei corespunzătoare. Utilizarea constructului For vă va permite să o scrieți foarte scurt, fără a utiliza un contor.

Mai întâi trebuie să creați o macrocomandă așa cum este descris mai sus. Apoi, notăm codul în sine. Considerăm că ne interesează valorile pentru 10 celule. Codul arată așa.

Pentru i = 1 până la 10 În continuare

Comanda este tradusă în limbajul „uman” ca „Repetați de la 1 la 10 în pași de unu”.

Dacă sarcina este de a obține o coloană cu pătrate, de exemplu, toate numerele impare din intervalul de la 1 la 11, atunci scriem:

Pentru i = 1 până la 10 pasul 1 În continuare.

Aici pasul este un pas. În acest caz, este egal cu doi. În mod implicit, absența acestui cuvânt în buclă înseamnă că pasul este unic.

Rezultatele obţinute trebuie salvate în celulele cu numărul (i, 1). Apoi, la fiecare început al ciclului cu creșterea i cu dimensiunea pasului, numărul liniei va crește automat. Astfel, codul va fi optimizat.

În general, codul va arăta astfel:

Pentru i = 1 la 10 Pasul 1 (puteți scrie pur și simplu Pentru i = 1 la 10)

Celulele (i, 1) .Valoare = i ^ 2 (adică valoarea pătratului i este scrisă în celula (i, 1))

Următorul (într-un anumit sens joacă rolul unui contor și înseamnă un alt început al ciclului)

Dacă totul este făcut corect, inclusiv înregistrarea și rularea unei macrocomenzi (consultați instrucțiunile de mai sus), atunci de fiecare dată când este apelată, se va obține o coloană cu dimensiunea specificată (în acest caz, formată din 10 celule).

Exemplul 4

În viața de zi cu zi, prea des este nevoie să luăm cutare sau cutare decizie, în funcție de o anumită condiție. Nu te poți descurca fără ele în VBA Excel. Exemple de programe în care cursul ulterioar al algoritmului este selectat și nu este predeterminat inițial, cel mai adesea folosesc construcția If... Then (pentru cazuri complexe) If... Then... END If.

Să luăm în considerare un caz concret. Să presupunem că trebuie să creați o macrocomandă pentru „Excel”, astfel încât celula cu coordonatele (1,1) să fie scrisă:

1, dacă argumentul este pozitiv;

0 dacă argumentul este zero;

1 dacă argumentul este negativ.

Crearea unei astfel de macrocomenzi pentru „Excel” începe în mod standard, prin utilizarea tastelor „hot” Alt și F11. Apoi se scrie următorul cod:

x = Celule (1, 1) .Valoare (această comandă atribuie x valoarea conținutului celulei cu coordonatele (1, 1))

Dacă x> 0 Atunci Celule (1, 1) .Valoare = 1

Dacă x = 0 Atunci Celule (1, 1) .Valoare = 0

Dacă x<0 Then Cells(1, 1).Value = -1

Rămâne să rulați macro-ul și să obțineți valoarea necesară pentru argument în „Excel”.

Funcții VBA

După cum probabil ați observat, programarea în cel mai faimos procesor de foi de calcul Microsoft nu este chiar atât de dificilă. Mai ales dacă înveți cum să folosești funcțiile VBA. Toate în acest limbaj de programare, creat special pentru scrierea aplicațiilor în Excel și Word, aproximativ 160 de funcții. Ele pot fi împărțite în mai multe grupuri mari. Acest:

  • Funcții matematice. Aplicându-le argumentării, obțin valoarea cosinusului, logaritmului natural, a părții integrale etc.
  • Funcții financiare. Datorită prezenței lor și utilizării programării în Excel, puteți obține instrumente eficiente pentru decontări contabile și financiare.
  • Funcții de procesare a matricei. Acestea includ Array, IsArray; LBound; UBound.
  • Funcții Excel VBA pentru șir. Acesta este un grup destul de mare. Include, de exemplu, funcțiile Space pentru a crea un șir cu un număr întreg de spații sau Asc pentru a converti caracterele în cod ANSI. Toate sunt utilizate pe scară largă și vă permit să lucrați cu șiruri în Excel, creând aplicații care facilitează foarte mult lucrul cu aceste tabele.
  • Funcții de conversie a tipurilor de date. De exemplu, CVar returnează valoarea argumentului Expression transformându-l în tipul de date Variant.
  • Funcții pentru lucrul cu datele. Acestea extind semnificativ capacitățile standard ale Excel. Deci, funcția WeekdayName returnează numele (complet sau parțial) zilei săptămânii după numărul său. Cronometrul este și mai util. Acesta indică numărul de secunde care au trecut de la miezul nopții până la un anumit moment al zilei.
  • Funcții pentru conversia unui argument numeric în diferite sisteme numerice. De exemplu, Oct oferă numere octale.
  • Funcții de formatare. Cel mai important dintre acestea este Formatul. Returnează o Variantă cu o expresie formatată conform instrucțiunilor date în descrierea formatului.
  • etc.

Studierea proprietăților acestor funcții și aplicarea lor va extinde în mod semnificativ domeniul de aplicare a „Excel”.

Exemplul 5

Să încercăm să trecem la rezolvarea unor probleme mai complexe. De exemplu:

Se dă un document pe hârtie al raportului privind nivelul real de sprijin al întreprinderii. Necesar:

  • să-și dezvolte partea de șablon prin intermediul procesorului de tabel Excel;
  • creați un program VBA care va solicita datele inițiale pentru completarea acestuia, efectuați calculele necesare și completați-le în celulele corespunzătoare ale șablonului.

Să luăm în considerare una dintre soluții.

Crearea șablonului

Toate acțiunile sunt efectuate pe o foaie standard în Excel. Celulele gratuite sunt rezervate pentru introducerea datelor pe lună, an, numele companiei de consum, cantitatea de produse, nivelul acestora și cifra de afaceri. Întrucât numărul de companii (societăți) pentru care se întocmește raportul nu este fix, celulele de introducere a valorilor în funcție de rezultate și numele complet al specialistului nu sunt rezervate în prealabil. Un nou nume este atribuit foii de lucru. De exemplu, „Օ rapoarte”.

Variabil

Pentru a scrie un program pentru completarea automată a șablonului, este necesar să selectați o desemnare. Acestea vor fi folosite pentru variabile:

  • NN- numărul rândului curent al tabelului;
  • TP și TF - cifra de afaceri planificată și efectivă;
  • SF și SP - suma efectivă și planificată a costurilor;
  • IP și IF - nivelul planificat și real de suport.

Să notăm cu aceleași litere, dar cu „prefixul” Itog, acumularea totalului pentru această coloană. De exemplu, ItogTP - se referă la o coloană de tabel intitulată „cifra de afaceri planificată”.

Rezolvarea unei probleme folosind programarea VBA

Folosind denumirile introduse, obținem formulele abaterilor. Dacă trebuie să efectuați calculul în% din nume (F - P) / P * 100, iar în sumă - (F - P).

Rezultatele acestor calcule pot fi introduse cel mai bine imediat în celulele corespunzătoare din tabelul Excel.

Pentru totalurile factice și prognozate, acestea sunt obținute folosind formulele ItogP = ItogP + P și ItogF = ItogF + F.

Pentru abateri utilizați = (ItogF - ItogP) / ItogP * 100, dacă calculul se efectuează în procente, iar în cazul valorii totale - (ItogF - ItogP).

Rezultatele sunt din nou scrise imediat în celulele corespunzătoare, deci nu este nevoie să le atribuiți variabilelor.

Înainte de a începe programul creat, trebuie să salvați registrul de lucru, de exemplu, sub numele „Report1.xls”.

Butonul „Creează tabel de raport” trebuie apăsat o singură dată după introducerea informațiilor din antet. Ar trebui cunoscute și alte reguli. În special, butonul „Adăugați rând” trebuie apăsat de fiecare dată după introducerea în tabel a valorilor pentru fiecare tip de activitate. După ce ați introdus toate datele, trebuie să apăsați butonul „Finish” și apoi să treceți la fereastra „Excel”.

Acum știi cum să rezolvi sarcinile Excel folosind macrocomenzi. Abilitatea de a utiliza vba excel (a se vedea exemplele de programe de mai sus) poate fi necesară și pentru a lucra în mediul celui mai popular editor de text „Word”. În special, este posibil prin scrierea, așa cum se arată chiar la începutul articolului, sau prin scrierea codului pentru a crea butoane de meniu, datorită cărora pot fi efectuate multe operații asupra textului prin apăsarea tastelor soft sau prin intermediul „Vizualizare” fila și pictograma „Macro-uri”.

Următoarele exemple simple de macrocomandă Excel ilustrează unele dintre caracteristicile și tehnicile descrise în tutorialul Excel VBA.

Macrocomandă Excel: Exemplul 1

Inițial această procedură Sub a fost dat ca exemplu de utilizare a comentariilor în codul VBA. Totuși, aici puteți vedea și cum sunt declarate variabilele, cum funcționează referințele de celule Excel, folosind o buclă Pentru, operator condiționat Dacăși afișarea unei casete de mesaj.

„Subprocedura caută o celulă care conține șirul specificat” în intervalul de celule A1: A100 din foaia activă Sub Find_String (sFindText As String) Dim i As Integer „Un număr întreg de tip Integer, utilizat într-o buclă For Dim iRowNumber As Integer" Un întreg de tip Integer pentru stocarea rezultatului iRowNumber = 0 "Se uită prin celulele A1: A100 una după alta până când se găsește un șir sFindText For i = 1 To 100 If Cells (i, 1) .Value = sFindText Then" Dacă se găsește o potrivire cu șirul dat " salvați numărul de rând curent și ieșiți din buclă Pentru iRowNumber = i Ieșiți pentru End If Next i "Informam utilizatorul într-o fereastră pop-up dacă rândul de căutare a fost găsit" Dacă rândul este găsit, indicați în ce celulă a fost găsită potrivirea Dacă iRowNumber = 0 Apoi MsgBox "String" & sFindText & "not found" Else MsgBox "String" & sFindText & "found in cell A" & iRowNumber End If End Sub

Macrocomandă Excel: Exemplul 2

Următoarea procedură Sub- un exemplu de utilizare a unei bucle Face în timp ce... Aici puteți vedea, de asemenea, cum sunt declarate variabilele, cum să lucrați cu referințele de celule Excel și cum să aplicați operatorul condiționat. Dacă.

„Sub procedură scoate numere Fibonacci care nu depășesc 1000 Sub Fibonacci () Dim i As Integer” Contor pentru indicarea poziției unui element în secvența Dim iFib As Integer „Stochează valoarea curentă a secvenței Dim iFib_Next As Integer” Stochează următoarea valoare a secvenței Dim iStep As Integer „Stochează dimensiunea următorului increment „Inițializați variabilele i și iFib_Next i = 1 iFib_Next = 0” Bucla Do While va rula până când valoarea „numărului actual Fibonacci depășește 1000 Do While iFib_Next< 1000 If i = 1 Then "Особый случай для первого элемента последовательности iStep = 1 iFib = 0 Else "Сохраняем размер следующего приращения перед тем, как перезаписать "текущее значение последовательности iStep = iFib iFib = iFib_Next End If "Выводим текущее число Фибоначчи в столбце A активного рабочего листа "в строке с индексом i Cells(i, 1).Value = iFib "Вычисляем следующее число Фибоначчи и увеличиваем индекс позиции элемента на 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Macrocomandă Excel: Exemplul 3

Această procedură Sub circulă prin celulele unei coloane A foaie activă până când întâlnește o celulă goală. Valorile sunt scrise într-o matrice. Această macrocomandă simplă Excel demonstrează lucrul cu matrice dinamice, precum și utilizarea unei bucle Faceți până când... În acest exemplu, nu vom efectua nicio acțiune cu matricea, deși în practica reală de programare, după ce datele sunt scrise în matrice, astfel de acțiuni sunt de obicei efectuate asupra lor.

„Procedura Sub stochează valorile celulelor din coloana A a foii active în matricea Sub GetCellValues ​​​​() Dim iRow As Integer” Stochează numărul rândului curent Dim dCellValues ​​() As Double „Array pentru stocarea valorilor celulelor iRow = 1 ReDim dCellValues ​​(1 la 10)" Loop Do Until trece prin celulele coloanei A a foii active "și extrage valorile acestora într-o matrice până când o celulă este goală este întâlnit. Faceți până când este gol (Cells (iRow, 1))" Verificați dacă matricea dCellValues ​​are o dimensiune suficientă „Dacă nu, măriți matricea de dimensiune cu 10 folosind ReDim If UBound (dCellValues)< iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If "Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value iRow = iRow + 1 Loop End Sub

Macrocomandă Excel: Exemplul 4

În acest exemplu, procedura Sub citește valori dintr-o coloană A fisa de lucru Foaia 2și efectuează cu ele operații aritmetice. Rezultatele sunt înregistrate în celulele coloanei A pe foaia de lucru activă. Această macrocomandă demonstrează utilizarea obiectelor Excel. În special, se face contestație prin procedură Sub la obiect Coloane, și arată cum este accesat acest obiect prin intermediul obiectului Fisa de lucru... De asemenea, se arată că atunci când se face referire la o celulă sau la un interval de celule de pe foaia activă, nu este necesar să se specifice numele acestei foi atunci când se scrie linkul.

„Sub-procedura folosind o buclă citește valorile din coloana A a foii de lucru Sheet2”, efectuează operații aritmetice cu fiecare valoare și scrie rezultatul în „coloana A a foii de lucru active (Sheet1) Sub Transfer_ColA () Dim i As Integer Dim Col As Range Dim dVal As Double "Atribuiți coloana A a foii de lucru la variabila Col Sheet 2 Set Col = Sheets (" Sheet2 "). Coloane (" A ") i = 1" Folosind o buclă, citiți valorile celulelor din Col până când "până când se întâlnește o celulă goală Do Until IsEmpty (Col.Cells (i)) "Efectuăm operații aritmetice pe valoarea celulei curente dVal = Col.Cells (i) .Value * 3 - 1" Următoarea comandă scrie rezultatul în coloana A a foii de lucru active „Specificați numele foii în linkul nu este necesar, deoarece aceasta este foaia activă Cells (i, 1) = dVal i = i + 1 Loop End Sub

Macrocomandă Excel: Exemplul 5

Această macrocomandă arată exemplu de cod VBA care monitorizează un eveniment Excel. Evenimentul la care este legată macrocomanda are loc de fiecare dată când o celulă sau un interval de celule este selectată în foaia de lucru. În cazul nostru, atunci când selectați o celulă B1, pe ecran este afișată o fereastră de mesaj.

„Acest cod arată o fereastră cu un mesaj dacă celula B1 este selectată în foaia de lucru curentă” Private Sub Worksheet_SelectionChange (ByVal Target As Range) „Verificați dacă celula B1 este selectată Dacă Target.Count = 1 And Target.Row = 1 And Target. Coloană = 2 Apoi „Dacă este selectată celula B1, efectuați acțiunea necesară MsgBox” Ați selectat celula B1 „End If End Sub

Macrocomandă Excel: Exemplul 6

Această procedură ilustrează utilizarea operatorilor La Eroareși Relua pentru a gestiona erorile. Acest cod arată, de asemenea, un exemplu de deschidere și citire a datelor dintr-un fișier.

„Procedura Sub setează argumentele Val1 și Val2 la valorile celulelor A1 și B1” din registrul de lucru Data.xlsx aflat în folderul C: \ Documents and Settings Sub Set_Values ​​​​(Val1 As Double, Val2 As Double) Dim DataWorkbook As Workbook On Error GoTo ErrorHandling " Deschideți registrul de lucru cu date Set DataWorkbook = Workbooks.Open ("C: \ Documents and Settings \ Data") "Atribuiți valorile variabilelor Val1 și Val2 din registrul de lucru specificat Val1 = Foi ( " Sheet1 "). Cells (1, 1) Val2 = Sheets ("Sheet1"). Cells (1, 2) DataWorkbook.Close Exit Sub ErrorHandling: "Dacă fișierul nu este găsit, utilizatorului i se va solicita să pună fișierul dorit fișier" în folderul dorit și apoi continuați executarea macrocomenzii MsgBox "Fișierul Data.xlsx nu a fost găsit! "& _" Vă rugăm să adăugați registrul de lucru în folderul C: \ Documents and Settings și faceți clic pe OK "Reluați End Sub

Top articole similare