Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Primjeri gotovih makronaredbi. Primjeri makronaredbi programa Excel

Primjeri gotovih makronaredbi. Primjeri makronaredbi programa Excel

Cilj - Naučite osnovne operatore i implementirajte osnovne programske konstrukcije u VBA jeziku.

4.1 Osnovne faze rada s vba programima u Excelu

Da biste pripremili i izvršili VBA program, trebate učiniti sljedeće:

    u Excelu odaberite naredbu s izbornika Usluga - Makro - UrednikVizualniOsnovni, temeljni;

    u prozoru koji se pojavi odaberite naredbu s izbornika UmetnutiModul... Izrađuje se modul, odnosno, jednostavno rečeno, otvara se prozor u koji možete unijeti tekst programa.

Na početku modula može se navesti instrukcija OpcijaEksplicitan... Ako je navedeno, tada će sve varijable koje se koriste u programu morati biti deklarirane u naredbi Dim(za više detalja vidjeti pododjeljak 4.3).

U nekim slučajevima, ovisno o postavci VBA okruženja, instrukcija OpcijaEksplicitan se automatski prikazuje na početku modula. Ako programer želi koristiti varijable bez da ih deklarira u izjavi Dim, zatim uputu OpcijaEksplicitan mora biti uklonjena.

Da biste pokrenuli program za izvršenje, odaberite naredbu iz izbornika Pokreni - Pokreni pod/korisnički obrazac.

4.2 Najjednostavniji primjer vba programa

Primjer 4.1- Program koji podiže navedeni broj a do navedenog stupnja b.

Dim a Kao samac, b Kao samac

a = InputBox ("Unesite bazu:")

b = InputBox ("Unesite eksponent:")

x = a ^ b 'Eksponencijacija

MsgBox ("Rezultat je" & x)

Evo riječi Pod označava početak postupka; njeno ime je u ovom slučaju temeljni premaz4_1 ... VBA program se uvijek sastoji od jedne ili više procedura (u ovom slučaju, jedne).

Znak '(jednostruki navodnik) označava početak komentara. Tekst komentara može biti bilo što.

Dim- operator deklaracije varijable. U ovom slučaju je naznačeno da su varijable a i b su tipa Singl... oni. mogu biti i cijeli i razlomci. Vrste podataka i deklaracije varijabli bit će detaljnije razmotrene u odjeljku 4.3.

InputBox- funkcija za unos vrijednosti varijable. Crta a = InputBox(“Unesite bazu:”) znači da je upisana vrijednost varijable a; poruka se prikazuje na ekranu "Unesite bazu:"... Crta x = a^ b- operator dodjele: izračunava se vrijednost desne strane (u ovom slučaju varijabla a podignut na vlast b), a rezultat se dodjeljuje varijabli navedenoj s lijeve strane (u ovom slučaju varijabla x). Crta MsgBox(“Rezultat je” &x) znači da je poruka prikazana na ekranu "Rezultat je jednak" i vrijednost varijable x.

Napomena - Sign & u funkciji MsgBox je namijenjen za spajanje nekoliko stavki podataka koje je potrebno prikazati na ekranu, u ovom primjeru - nizova "Rezultat je jednak" i varijabilna x... Slično znak & može se koristiti u funkciji InputBox(primjeri takve upotrebe bit će navedeni u nastavku). Prije znaka & i moraju biti praćeni razmacima.

Više VBA izjava može se staviti u jedan redak. Da biste to učinili, razdvojeni su dvotočkama. Dakle, program iz primjera 4.1 mogao bi se napisati, na primjer, ovako:

'Prvi primjer VBA programa

Dim a Kao samac, b Kao samac

a = InputBox ("Unesite bazu:"): b = InputBox ("Unesite eksponent:")

x = a ^ b: MsgBox (“Rezultat je” & x) 'Eksponencijalirajte i ispišite rezultat

Ovaj primjer koristi proceduru koja se naziva potprogram. Ovaj postupak počinje riječju Pod... Uvijek postoji barem jedan potprogram u VBA programu. Osim toga, postoji još jedna vrsta procedure u VBA - funkcije. Funkcijski postupak počinje riječju Funkcija... Korištenje takvih postupaka bit će razmotreno u pododjeljku 4.9.

(Visual Basic za aplikaciju)

Osnovni programski jezik visoke razine (prevoditelj)

Vizualni - sadrži vizualne alate za razvoj programa (kodova) koji pojednostavljuju rad korisnika, omogućuje vam snimanje kodova pomoću makro snimača.

Aplikacija je aplikacija za softverski sustav MSOffice zajedno s aplikacijama Word, Access, PowerPoint.

Zašto ti trebaVBA?

    Kombinira (integrira) aplikacije, omogućuje upravljanje radom drugih aplikacija bez napuštanja Excela, ugrađuje objekte iz drugih aplikacija;

    Radnje koje su dostupne korisniku na radnom listu čine 10% svih mogućnosti Excela, VBA vam omogućuje automatizaciju rada vašeg projekta.

VBA spada u broj objektno orijentiranih jezika, odnosno objekti se koriste pri izradi projekata. Definicija: kombiniranje podataka i koda u jednu cjelinu Na primjer, element "Button" i odgovarajući kod povezan s ovim gumbom omogućit će prijelaz na drugi list radne knjige.

Glavni objektiVBA:

Aplikacija (sama Excel aplikacija)

Radna knjiga (radna knjiga je vaša datoteka)

WorkSheetFunction (čarobnjak za funkcije)

Radni list

Domet

Grafikon

Stil

Granica

Interijer (boja pozadine)

Font

Mnogi od nekih objekata čine obitelji– Radne knjige, Radni listovi, grafikoni.

Objekti imaju svojstva (radnje na objekte) i metode (radnje samih objekata).

Počnimo se upoznavati s alatima za vizualizaciju za razvoj projekata u VBA. Ovo je Integrirano okruženje za razvoj aplikacija. Da biste ušli u ovo okruženje, odaberite stavku izbornika ServiceMacroEditorVBA ili istovremeno pritisnite tipke ALT i F11.

Komponente VBA uređivača pojavljuju se na ekranu:

Prozor projekta - VBA projekt

Prozor svojstava

Prozor koda

Prozor korisničkog obrasca

Alatne trake

Prozor Projekt – VBAProject (slika 1) prikazuje strukturu vašeg projekta (datoteke). Ovaj prozor se aktivira u VBA editoru odabirom naredbe ViewProjectExplorer ili pritiskom na tipku ProjectExplorer ili pritiskom na Ctrl + R

Riža. 1 Prozor projekta.

Slika 2 Integrirano okruženje za razvoj aplikacija

Prozor koda služi za pohranjivanje koda povezanog s objektom. Svaki objekt ima svoj prozor, tako da svaki radni list ima svoj prozor koda, radna knjiga ima svoj prozor.

Izrada prilagođenih funkcija

Prilagođene funkcije dodane su na standardni popis WorkSheetFunction. Te se funkcije kreiraju u posebnom modulu koji prati objekt WorkSheetFunction. Ovaj modul se dodaje projektu pomoću naredbe InsertModule i pojavit će se u prozoru projekta na razini vaše aplikacije. Svi kodovi napisani u ovom modulu pojavit će se u kategoriji Korisnički definirane funkcije Čarobnjaka za funkcije.

Dakle, dodamo modul našem projektu (InsertModule) i upišemo tekst programa u prozor koda ovog modula:

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

Zatim idemo na radni list "1 graf", u ćeliji c2 pozvat ćemo novu funkciju dodanu u master funkcija - y (x). Rad s ovom funkcijom ne razlikuje se od rada s bilo kojom drugom funkcijom. U prvom koraku trebate odabrati y (x) u kategoriji "Korisnički definirane funkcije", u drugom koraku navesti ćeliju A2 kao argumente x. Kao rezultat, formula = y (A2) bit će upisana u ćeliju C2. Povucite ovu formulu preko cijelog raspona A2: A17 kao što je prikazano na sl. 3. Naravno, rezultat bi trebao biti isti kao što ste dobili izračunavanjem ove funkcije uobičajenim sredstvima radnog lista.

Slika 3. Funkcija y (x), izračunata na uobičajeni način i korištenjem prilagođene funkcije.

Vba osnovni operatori - uvjetni operatori

Uvjetni operatori imaju 2 oblika zapisa:

1) Jedan red

AKO< условие>ZATIM<оператор 1>

IF, THEN, ELSE - nepromjenjive službene riječi, u kutnim zagradama< >korisnički tekst, to je ono što pišete u skladu sa zadatkom, u uglatim zagradama je neobavezni dio, tekst može nedostajati. Ovaj se oblik obično koristi u slučaju jednostavnih radnji, na primjer, kada se izračunava modul broja y = h = abs (s), možete koristiti sljedeći operator:

AKO je x> 0 ONDA y = x DRUGO y = -x

2) U nekoliko redaka. U ovom slučaju, uvjetni izraz nužno završava naredbom "ENDIF"

AKO<условие>ZATIM

<оператор 1>

<оператор 2>

<оператор 3>

<оператор 4>

Ovaj oblik se koristi za složene izračune, na primjer, kada se izračunaju korijeni kvadratne jednadžbe. Neka je potrebno pronaći korijene jednadžbe a * x 2 + b * x + c = 0. Kao što znate, ako je b 2 -4 * a * c ≥ 0, tada se korijeni izračunavaju po formuli
, ako je b 2 -4 * a * c ≤ 0, tada nema korijena u rasponu realnih brojeva. Uvjetni operator koji implementira ovaj algoritam izgleda ovako:

AKO b ^ 2 -4 * a * c> = 0 ONDA

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

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

X1 = "NEMA RJEŠENJA"

X2 = "NEMA RJEŠENJA"

Primjeri pisanja prilagođenih funkcija u vba

Primjer 1.

F
unkcija y (x)

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

Završna funkcija

Primjer 2

Funkcija z (x)

Ako je x< 0 Then

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

Ako je x< 1 Then

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

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

Završna funkcija

Predavanje 2

    Svojstva, metode i događaji VBA objekata. Primjer postupka koji koristi pojedinačna svojstva objekta Application.

    Kontrolni elementi

    Tipovi varijabli u VBA

    Operatori petlje

    Primjer programa tabelarne funkcije

Svojstva, metode i događaji VBA objekata. Primjer postupka koji koristi pojedinačna svojstva objekta Application.

Nastavimo naše upoznavanje s VBA objektnim modelom. Svi objekti su organizirani u hijerarhijskoj strukturi podređenoj objektu "Application" najviše razine.

Primjena . Radne knjige .

Ako je radna knjiga (datoteka) "Grafika" aktivna, tada je dovoljno naznačiti

Radni listovi ("Sadržaj"). Raspon ("A1").

Ako radite na listu "Sadržaj", veza će izgledati kao Raspon ("A1").

Svi objekti imaju svojstva, metode i događaje.

Vlasništvo ovo je neka karakteristika objekta (boja, oblik, naziv, lokacija, vidljivost, itd.) Vrijednost objekta postavlja se na sljedeći način:

Objekt.Svojstvo = vrijednost svojstva

Metoda to je radnja koja se izvodi na objektu (otvaranje, zatvaranje, brisanje). Pravilo pisanja metode:

Objekt. Metoda

Događaj to je radnja koju objekt prepoznaje (klik mišem, dvostruki klik, pritisak tipke).

Bit programiranja u VBA sastoji se od dva koncepta - događaja i odgovora na njega. Ako korisnik utječe na sustav (pritiskom na tipku), što je događaj, tada je pomoću VBA moguće programirati odgovor - radnju odgovora.

Ovdje su neka od svojstava, metoda i događaja glavnih objekata.

Vlasništvo

Objekt aplikacije

Naslov (naslov objekta)

Prekini (prekini Excel

Nova radna knjiga (napravi novu radnu knjigu)

AutoREcover

Uštedjeti

SheetActivate (idite na radni list)

ReferenceStyle (referentni stil)

Pokreni (izvršenje makronaredbe)

WorkBookOpen (otvorite radnu knjigu)

MemoryFree (informacije o slobodnom RAM-u)

Promjenjivo (ponovno izračunavanje promjena u ćelijama radnog lista)

WorkBookBeforeClose (zatvaranje radne knjige)

MemoryTotal (podaci o ukupnom RAM-u)

Izračunaj (izračun u svim otvorenim radnim knjigama)

SheetBeforeDubleClick (dvostruki klik)

MemoryUsed (informacije o zauzetom RAM-u)

IpputBox (unos podataka)

SheetBeforeRightClick (desni klik)

CellDragAndDrop (povuci i ispusti formule u ćelije)

Msgbox (izlazne poruke)

ActiveCell, ActiveSheet (aktivna ćelija, list)

Stanice (raspon stanica)

DisplayFormulaBar (prikaži traku formule)

DisplayScrollBar (prikaz traka za pomicanje)

DisplayStatusBar (prikaz statusne trake)

Svojstva metode aplikacije omogućuju vam da programski postavite vrijednosti mnogih opcija u prozoru Alati / Opcije. Na primjer, možete upotrijebiti sljedeće postupke da biste promijenili zadani prikaz prozora programa Excel, promijenili naslov i onemogućili radnju formula povuci i ispusti.

Ovi postupci se bilježe u modulu "Ova knjiga" i izvršavaju se kada se radna knjiga otvara i zatvara, odnosno kada se izvršavaju događaji Open i BeforeClose:

Privatna pod radna knjiga_open ()

„Naslov radne knjige

Application.Caption = "Kisa i Osya su bile ovdje"

"Boja pozadine raspona A1: D1 -crvena

"Granice raspona A1: D1 - točkasta linija

"povlačenje CellDragAndDrops je otkazano

Application.CellDragAndDrop = False

'Traka formule je uklonjena

Application.DisplayFormulaBar = False

'Trake za pomicanje su uklonjene

Application.DisplayScrollBars = False

“R1C1 stil veze je postavljen

Application.ReferenceStyle = xlR1C1

"Private Sub Workbook_BeforeClose (Otkaži kao Boolean)

"Vraćeno je povlačenje CellDragAndDrops

Application.CellDragAndDrop = Točno

'Traka formule je vraćena

Application.DisplayFormulaBar = Točno

'Trake za pomicanje su vraćene

Application.DisplayScrollBars = Istina

'A1 stil veze je vraćen

Application.ReferenceStyle = xlA1

Malo tko zna da se prva verzija popularnog Microsoft Excel proizvoda pojavila 1985. godine. Od tada je prošao kroz nekoliko modifikacija i tražen je među milijunima korisnika diljem svijeta. Istovremeno, mnogi ljudi rade s samo malim dijelom mogućnosti ovog procesora proračunskih tablica i čak nemaju pojma kako bi im život mogao olakšati programiranje u Excelu.

Što je VBA

Programiranje u Excelu provodi se pomoću programskog jezika Visual Basic for Application, koji je izvorno ugrađen u najpoznatiji Microsoftov procesor tablica.

Stručnjaci svojim prednostima pripisuju komparativnu lakoću razvoja. Kao što pokazuje praksa, čak i korisnici koji nemaju profesionalne vještine programiranja mogu svladati osnove VBA. Jedna od značajki VBA je izvođenje skripte usred uredskih aplikacija.

  • ponovno idite na redak "Makroi";
  • na popisu odaberite "Makro 1";
  • pritisnite "Run" (ista radnja se pokreće pokretanjem kombinacije tipki "Ctrl + hh").

Kao rezultat toga, odvija se radnja koja je provedena u procesu snimanja makronaredbe.

Ima smisla vidjeti kako izgleda kod. Da biste to učinili, vratite se na redak "Macros" i kliknite "Promijeni" ili "Enter". Kao rezultat toga, završavaju u VBA okruženju. Zapravo, sam makro kod nalazi se između redaka Sub Macro1 () i End Sub.

Ako je kopiranje izvršeno, na primjer, iz ćelije A1 u ćeliju C1, tada će jedan od redaka koda izgledati kao Raspon (“C1”). Odaberite. U prijevodu to izgleda kao "Raspon (" C1 "). Odaberite, drugim riječima, prenosi se u VBA Excel, u ćeliju C1.

Aktivni dio koda dovršava se naredbom ActiveSheet.Paste. To znači upisivanje sadržaja odabrane ćelije (u ovom slučaju A1) u označenu ćeliju C1.

Primjer 2

VBA petlje pomažu vam u stvaranju raznih makronaredbi u Excelu.

VBA petlje pomažu vam u stvaranju raznih makronaredbi. Pretpostavimo da imamo funkciju y = x + x2 + 3x3 - cos (x). Potrebno je izraditi makronaredbu da biste dobili njezin graf. To se može učiniti samo pomoću VBA petlji.

Početna i konačna vrijednost argumenta funkcije uzimaju se kao x1 = 0 i x2 = 10. Osim toga, potrebno je unijeti konstantu – vrijednost za korak promjene argumenta i početnu vrijednost za brojač.

Svi primjeri makronaredbi VBA Excel kreirani su istim postupkom kao što je gore prikazano. U ovom konkretnom slučaju, kod izgleda ovako:

Učinite Dok x1< x2 (цикл будeт выполняться пока вeрно выражeниe x1 < x2)

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

Ćelije (i, 1) .Vrijednost = x1 (vrijednost x1 upisuje se u ćeliju s koordinatama (i, 1))

Ćelije (i, 2) .Vrijednost = y (vrijednost y upisuje se u ćeliju s koordinatama (i, 2))

i = i + 1 (brojac je aktivan);

x1 = x1 + shag (argument se mijenja veličinom koraka);

Kao rezultat pokretanja ove makronaredbe u Excelu, dobivamo dva stupca, od kojih prvi sadrži vrijednosti za x, a drugi za y.

Zatim se pomoću njih iscrtava graf na standardni način za Excel.

Primjer 3

Za implementaciju petlji u VBA Excel 2010, kao iu drugim verzijama, uz već citiranu konstrukciju Do While, koristi se For.

Razmislite o programu koji stvara stupac. U svakoj od njegovih ćelija bit će upisani kvadrati broja odgovarajućeg retka. Korištenje konstrukcije For omogućit će vam da je napišete vrlo kratko, bez korištenja brojača.

Prvo morate stvoriti makronaredbu kao što je gore opisano. Zatim zapisujemo sam kod. Smatramo da nas zanimaju vrijednosti za 10 ćelija. Kod izgleda ovako.

Za i = 1 do 10 Dalje

Naredba je prevedena na "ljudski" jezik kao "Ponovi od 1 do 10 u koracima od jedan".

Ako je zadatak dobiti stupac s kvadratima, na primjer, sve neparne brojeve iz raspona od 1 do 11, tada pišemo:

Za i = 1 do 10 korak 1 Sljedeći.

Ovdje je korak korak. U ovom slučaju, jednako je dva. Prema zadanim postavkama, odsutnost ove riječi u petlji znači da je korak jedan.

Dobiveni rezultati moraju se pohraniti u ćelije s brojem (i, 1). Zatim, pri svakom početku ciklusa s povećanjem i za veličinu koraka, broj reda će se automatski povećati. Tako će kod biti optimiziran.

Općenito, kod će izgledati ovako:

Za i = 1 do 10, korak 1 (možete jednostavno napisati Za i = 1 do 10)

Ćelije (i, 1) .Vrijednost = i ^ 2 (tj. vrijednost kvadrata i upisana je u ćeliju (i, 1))

Dalje (u nekom smislu igra ulogu brojača i znači još jedan početak ciklusa)

Ako je sve učinjeno ispravno, uključujući snimanje i pokretanje makronaredbe (pogledajte gornje upute), tada će se svaki put kada se ona pozove dobiti stupac određene veličine (u ovom slučaju koji se sastoji od 10 ćelija).

Primjer 4

U svakodnevnom životu prečesto postoji potreba za donošenjem ove ili one odluke, ovisno o nekom stanju. Ne možete bez njih u VBA Excelu. Primjeri programa u kojima je odabran daljnji tijek algoritma, a nije unaprijed određen inicijalno, najčešće koriste konstrukciju If… Then (za složene slučajeve) If… Then… END If.

Razmotrimo konkretan slučaj. Pretpostavimo da trebate stvoriti makronaredbu za "Excel" tako da je ćelija s koordinatama (1,1) napisana:

1, ako je argument pozitivan;

0 ako je argument nula;

1 ako je argument negativan.

Izrada takve makronaredbe za "Excel" počinje na standardni način, korištenjem "vrućih" tipki Alt i F11. Zatim se napiše sljedeći kod:

x = Ćelije (1, 1) .Vrijednost (ova naredba dodjeljuje x vrijednost sadržaja ćelije s koordinatama (1, 1))

Ako je x> 0 Tada su ćelije (1, 1) .Vrijednost = 1

Ako je x = 0 Tada su ćelije (1, 1) .Vrijednost = 0

Ako je x<0 Then Cells(1, 1).Value = -1

Ostaje pokrenuti makro i dobiti potrebnu vrijednost za argument u "Excelu".

VBA funkcije

Kao što ste mogli primijetiti, programiranje u najpoznatijem Microsoftovom procesoru proračunskih tablica nije tako teško. Pogotovo ako naučite koristiti VBA funkcije. Sve u ovom programskom jeziku, kreiranom posebno za pisanje aplikacija u Excelu i Wordu, oko 160 funkcija. Mogu se podijeliti u nekoliko velikih skupina. Ovaj:

  • Matematičke funkcije. Primjenjujući ih na argument, dobivaju vrijednost kosinusa, prirodnog logaritma, sastavnog dijela itd.
  • Financijske funkcije. Zahvaljujući njihovoj prisutnosti i korištenju programiranja u Excelu, možete dobiti učinkovite alate za računovodstvo i financijska obračuna.
  • Funkcije obrade niza. To uključuje Array, IsArray; LBvezan; UBvezan.
  • VBA Excel funkcije za string. Ovo je prilično velika skupina. Uključuje, na primjer, funkcije Space za stvaranje niza s cijelim brojem razmaka ili Asc za pretvaranje znakova u ANSI kod. Svi su oni naširoko korišteni i omogućuju vam rad sa nizovima u Excelu, stvarajući aplikacije koje uvelike olakšavaju rad s tim tablicama.
  • Funkcije konverzije tipa podataka. Na primjer, CVar vraća vrijednost argumenta Expression pretvarajući ga u tip podataka Variant.
  • Funkcije za rad s datumima. Oni značajno proširuju standardne mogućnosti Excela. Dakle, WeekdayName funkcija vraća naziv (puno ili djelomično) dana u tjednu po njegovom broju. Tajmer je još korisniji. Odaje broj sekundi koje su protekle od ponoći do određenog trenutka u danu.
  • Funkcije za pretvaranje brojčanog argumenta u različite brojevne sustave. Na primjer, listopad daje oktalne brojeve.
  • Funkcije oblikovanja. Najvažniji od njih je Format. Vraća Variant s izrazom oblikovanim prema uputama danim u opisu formata.
  • itd.

Proučavanje svojstava ovih funkcija i njihove primjene značajno će proširiti opseg primjene "Excela".

Primjer 5

Pokušajmo prijeći na rješavanje složenijih problema. Na primjer:

Daje se papirnati dokument izvješća o stvarnoj razini potpore poduzeća. Potreban:

  • razviti svoj predloški dio pomoću procesora tablica Excel;
  • izraditi VBA program koji će zatražiti početne podatke za njegovo popunjavanje, izvršiti potrebne izračune i ispuniti ih u odgovarajućim ćelijama predloška.

Razmotrimo jedno od rješenja.

Izrada predloška

Sve se radnje provode na standardnom listu u Excelu. Slobodne ćelije rezervirane su za unos podataka po mjesecu, godini, nazivu tvrtke potrošača, količini proizvoda, njihovoj razini i prometu. Budući da broj tvrtki (društva) za koje se sastavlja izvješće nije fiksan, ćelije za unos vrijednosti prema rezultatima i puno ime stručnjaka nisu unaprijed rezervirane. Radnom listu se dodjeljuje novi naziv. Na primjer, "Օ izvješća".

Varijabilna

Za pisanje programa za automatsko popunjavanje predloška potrebno je odabrati oznaku. Oni će se koristiti za varijable:

  • NN- broj trenutnog retka tablice;
  • TP i TF - planirani i stvarni promet;
  • SF i SP - stvarni i planirani iznos troškova;
  • IP i IF - planirana i stvarna razina potpore.

Označimo istim slovima, ali s "prefiksom" Itog, akumulaciju ukupnog iznosa za ovaj stupac. Na primjer, ItogTP - odnosi se na stupac tablice pod nazivom "planirani promet".

Rješavanje problema korištenjem VBA programiranja

Koristeći uvedene oznake dobivamo formule za odstupanja. Ako trebate izvršiti izračun u % imena (F - P) / P * 100, iu zbroju - (F - P).

Rezultate ovih izračuna najbolje je odmah unijeti u odgovarajuće ćelije u Excel tablici.

Za činjenične i prognozirane ukupne vrijednosti dobivaju se pomoću formula ItogP = ItogP + P i ItogF = ItogF + F.

Za odstupanja koristite = (ItogF - ItogP) / ItogP * 100, ako se izračun provodi u postocima, au slučaju ukupne vrijednosti - (ItogF - ItogP).

Rezultati se ponovno odmah zapisuju u odgovarajuće ćelije, tako da ih nema potrebe dodijeliti varijablama.

Prije pokretanja kreiranog programa, morate spremiti radnu knjigu, na primjer, pod nazivom "Izvješće1.xls".

Gumb "Kreiraj tablicu izvješća" mora se pritisnuti samo 1 put nakon unosa informacija zaglavlja. Treba znati i druga pravila. Konkretno, gumb "Dodaj red" mora se pritisnuti svaki put nakon unosa vrijednosti za svaku vrstu aktivnosti u tablicu. Nakon unosa svih podataka potrebno je pritisnuti gumb "Završi", a zatim prijeći na prozor "Excel".

Sada znate kako riješiti Excel zadatke pomoću makronaredbi. Mogućnost korištenja vba excela (vidi primjere programa iznad) može biti potrebna i za rad u okruženju trenutno najpopularnijeg uređivača teksta "Word". Konkretno, moguće je pisanjem, kao što je prikazano na samom početku članka, ili pisanjem koda za kreiranje gumba izbornika, zahvaljujući kojima se mnoge operacije nad tekstom mogu izvesti pritiskom na mekane tipke ili kroz "Pregled" karticu i ikonu "Macros".

Sljedeći jednostavni primjeri Excel makronaredbi ilustriraju neke od značajki i tehnika opisanih u vodiču za Excel VBA.

Excel makro: primjer 1

U početku ovaj postupak Pod dat je kao primjer korištenja komentara u VBA kodu. Međutim, ovdje također možete vidjeti kako se deklariraju varijable, kako funkcioniraju reference ćelija u Excelu, koristeći petlju Za, uvjetni operator Ako i prikaz okvira s porukom.

"Sub procedura traži ćeliju koja sadrži navedeni niz" u rasponu ćelija A1: A100 aktivnog lista Sub Find_String (sFindText As String) Dim i As Integer "Cijeli broj tipa Integer, koji se koristi u For petlji Dim iRowNumber As Integer" Cijeli broj tipa Integer za pohranjivanje rezultata iRowNumber = 0 "Pregledava ćelije A1: A100 jednu za drugom dok se ne pronađe niz sFindText For i = 1 Do 100 If Cells (i, 1) .Value = sFindText Then" Ako se pronađe podudaranje s zadanim nizom " spremite trenutni broj retka i izađite iz petlje For iRowNumber = i Izađite za kraj If Next i "Obavještavamo korisnika u skočnom prozoru je li pronađen redak za pretraživanje" Ako je navedeno pronađen je redak, naznačite u kojoj je ćeliji pronađeno podudaranje Ako je iRowNumber = 0 Tada MsgBox "String" & sFindText & "not found" Inače MsgBox "String" & sFindText & "pronađeno u ćeliji A" & iRowNumber End If End Sub

Excel makro: primjer 2

Sljedeći postupak Pod- primjer korištenja petlje Učinite dok... Ovdje također možete vidjeti kako se deklariraju varijable, kako raditi s referencama ćelija u programu Excel i kako primijeniti uvjetni operator. Ako.

"Sub procedura daje Fibonaccijeve brojeve koji ne prelaze 1000 Sub Fibonacci () Dim i As Integer" Brojač za označavanje položaja elementa u nizu Dim iFib As Integer "Pohranjuje trenutnu vrijednost niza Dim iFib_Next As Integer" Pohranjuje sljedeću vrijednost niza Dim iStep As Integer "Pohranjuje veličinu sljedećeg inkrementa "Inicijaliziraj varijable i i iFib_Next i = 1 iFib_Next = 0" Petlja Do While će se izvoditi dok vrijednost "trenutnog Fibonaccijevog broja ne prijeđe 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

Excel makro: primjer 3

Ovaj postupak Pod petlje kroz ćelije stupca A aktivni list dok ne naiđe na praznu ćeliju. Vrijednosti se zapisuju u niz. Ova jednostavna Excel makronaredba pokazuje rad s dinamičkim nizovima kao i korištenje petlje Učinite do... U ovom primjeru nećemo izvoditi nikakve radnje s nizom, iako se u stvarnoj programskoj praksi, nakon što su podaci upisani u niz, takve se radnje obično izvode na njima.

"Procedura Sub pohranjuje vrijednosti ćelija u stupcu A aktivnog lista u nizu Sub GetCellValues ​​() Dim iRow As Integer" Pohranjuje broj trenutnog retka Dim dCellValues ​​() kao dvostruki "Niz za pohranjivanje vrijednosti ćelija iRow = 1 ReDim dCellValues ​​(1 do 10)" Loop Do Until petlja kroz ćelije stupca A aktivnog lista "i izdvaja njihove vrijednosti u niz dok se ne isprazni ćelija Do Until IsEmpty (Cells (iRow, 1))" Provjerite da li niz dCellValues ​​ima dovoljnu veličinu "Ako ne, povećajte niz veličine za 10 pomoću 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

Excel makro: primjer 4

U ovom primjeru postupak Podčita vrijednosti iz stupca A radni list List 2 te s njima izvodi aritmetičke operacije. Rezultati se zapisuju u ćelije stupca A na aktivnom radnom listu. Ova makronaredba pokazuje upotrebu Excel objekata. Posebno se žalba podnosi postupkom Pod na objekt Kolumne, i pokazuje kako se ovom objektu pristupa putem objekta Radni list... Također je prikazano da kada se referira na ćeliju ili raspon ćelija na aktivnom listu, nije potrebno navesti naziv ovog lista prilikom pisanja veze.

"Sub procedura koristi petlju za čitanje vrijednosti u stupcu A radnog lista Sheet2", izvodi aritmetičke operacije sa svakom vrijednošću i zapisuje rezultat u "stupac A aktivnog radnog lista (Sheet1) Sub Transfer_ColA () Dim i As Integer Dim Col As Range Dim dVal As Double "Dodijelite stupac A radnog lista Col varijablu List 2 Postavite Col = Sheets (" Sheet2 "). Stupci (" A ") i = 1" Koristeći petlju, pročitajte vrijednosti ćelija u Col dok "dok se ne naiđe na praznu ćeliju Do Until IsEmpty (Col.Cells (i))" "Izvodimo aritmetičke operacije na vrijednosti trenutne ćelije dVal = Col.Cells (i) .Value * 3 - 1" Sljedeće naredba zapisuje rezultat u stupac A aktivnog radnog lista "Navedite naziv lista u vezi nije potrebno jer je ovo aktivni list Cells (i, 1) = dVal i = i + 1 Loop End Sub

Excel makro: primjer 5

Ova makronaredba prikazuje primjer VBA koda koji prati Excel događaj. Događaj na koji je makronaredba vezana javlja se svaki put kada se na radnom listu odabere ćelija ili raspon ćelija. U našem slučaju, pri odabiru ćelije B1, na ekranu se prikazuje prozor s porukom.

"Ovaj kod prikazuje prozor s porukom ako je ćelija B1 odabrana na trenutnom radnom listu" Privatni pod Radni list_SelectionChange (ByVal Target As Range) "Provjerite je li odabrana ćelija B1 ako je Target.Count = 1 And Target.Row = 1 And Target. Stupac = 2 Zatim "Ako je odabrana ćelija B1, izvrši potrebnu radnju MsgBox" Odabrali ste ćeliju B1 "Završi ako završi pod

Excel makro: primjer 6

Ovaj postupak ilustrira korištenje operatora U slučaju pogreške i Životopis rješavati pogreške. Ovaj kod također pokazuje primjer otvaranja i čitanja podataka iz datoteke.

"Sub procedura postavlja argumente Val1 i Val2 na vrijednosti ćelija A1 i B1" iz radne knjige Data.xlsx koja se nalazi u mapi C: \ Dokumenti i postavke Sub Set_Values ​​(Val1 As Double, Val2 As Double) Dim DataWorkbook As Workbook On Error GoTo ErrorHandling " Otvorite radnu knjigu s podacima Set DataWorkbook = Workbooks.Open ("C: \ Documents and Settings \ Data") "Dodijelite vrijednosti varijabli Val1 i Val2 iz navedene radne knjige Val1 = Sheets ( " Sheet1 "). Ćelije (1, 1) Val2 = Sheets ("Sheet1"). Ćelije (1, 2) DataWorkbook.Close Exit Sub ErrorHandling: "Ako datoteka nije pronađena, od korisnika će se tražiti da stavi željenu datoteku" u željenoj mapi, a zatim nastavite s izvršavanjem makronaredbe MsgBox "Datoteka Data.xlsx nije pronađena! "& _" Dodajte radnu knjigu u mapu C: \ Dokumenti i postavke i kliknite U redu "Nastavi kraj sub

Vrhunski povezani članci