Arvu absoluutväärtus Excelis. Modulo summeerimine Excelis. Alternatiivsed arvutusmeetodid

Arvu moodul (ehk absoluutväärtus) matemaatikas on mittenegatiivne arv, mille väärtus oleneb arvu tüübist.
Kui number a mittenegatiivne, siis on moodul võrdne arvu endaga ( a juures a ≥ 0), kui negatiivne, siis on moodul võrdne selle positiivse väärtusega ( -a juures a< 0 ):

Leidmise eest mooduli väärtused Excelil on standardfunktsioon ABS.
Üldiselt on absoluutväärtuse otsimine üsna lihtne toiming arvutamiseks, seega on see funktsioon paljudes programmeerimiskeeltes standardne, näiteks VBA-s (Visual Basic for Applications) on mooduli valem kirjutatud ka kui Abs.

Mooduli funktsioon Excelis

Funktsiooni süntaks ja kirjeldus ABS:

ABS (arv)
Tagastab arvu mooduli (absoluutväärtuse).

  • Number (nõutav argument) on reaalarv, mille moodulit tuleb arvutada.

Määrame funktsiooni argumendiks suvalise reaalarvu, mille tulemusena saame selle absoluutväärtuse:


Vaatamata sellele, et mooduli märki matemaatikas tähistatakse vertikaalse ribana | , katse panna Excelisse mooduli märk, et otsida väärtust mooduli järgi, põhjustab tõrke näiteks valemi sisestamisel =|-29| Excel annab vea.

Alternatiivsed arvutusmeetodid

Kui äkki lendas ABS valem peast välja ja unustasite kuidas arvutada moodul Selle abiga Excelis kaalume mitmeid viise arvu absoluutväärtuse leidmiseks ilma seda valemit kasutamata.

Funktsiooni SIGN kasutamine

Definitsiooni kohaselt on moodul algarvu mittenegatiivne väärtus, seega korrutades arvu 1 või -1-ga, sõltuvalt numbri märgist (see tähendab, et korrutame positiivse 1-ga, korrutame negatiivse arvuga - 1), saame lõpuks absoluutväärtuse:

Mis on moodul

Definitsiooni järgi on moodul matemaatiline tehe, mis tagastab arvu absoluutväärtuse, st arvu enda ilma märgita. Hoolimata spetsiifikast leiab mooduli kasutamist lisaks matemaatiliste ülesannete lahendamisele ka majandusmudelites, füüsikas ja paljudes teistes täppisteadustes.

Kuidas arvutada moodulit Excelis?

Mooduli arvutamiseks Excelis saab kasutada mitmeid meetodeid, millest lihtsaim on ABS-funktsioon. Tagastab valitud arvu või matemaatilise avaldise absoluutväärtuse.

Mooduli funktsiooni süntaks on väga lihtne - Excelis piisab, kui sisestada valemiribale “=ABS” ja seejärel määrata sulgudes argument, mis võib olla nii arv, lahtriviide kui ka mõni funktsioon mis tagastab numbrilise väärtuse. Samuti saab seda toimingut teha klõpsates nuppu "Sisesta funktsioon", kust valida sobiv funktsioon, või kasutades otsingut, märkides sõna "moodul" või "ABS".

Moodulite summa arvutamine

Üks Exceli levinumaid toiminguid on moodulsumma. See võimaldab teil lisada lahtrite väärtusi, võtmata arvesse nende märki. Selle toimingu tegemiseks ei pea kõigepealt arvutama iga arvu moodulit ja seejärel kasutama summafunktsiooni.

Mitut väärtust hõlmava toimingu sooritamisel võib Exceli moodul korraga töötada tervel hulgal lahtritel. Niisiis, summa mooduli arvutamiseks piisab järgmise päringukujunduse kasutamisest:

=SUM(ABS(A1:A4))

Siin näitavad veerus A esimesed neli rida väärtusi, mille jaoks on vaja teha mooduli lisamine.

Näited

Et kinnistada arusaamist mooduli kirjeldusest Excelis ja selle tööpõhimõtetest, tasub kaaluda paari lihtsat näidet, mis näitavad funktsiooni toimimist.

Mõne antud arvu või matemaatilise näite mooduli, näiteks 2 ja 5 vahe arvutamiseks peaksite kasutama järgmist tähistust:

=ABS(2-5)

Selle päringu tulemuseks on number "3".

Kui on vaja arvutada maatriksi elementide moodulite summa, mille väärtused on tabelisse kantud, vahemikus A1:C3, on vastuse leidmiseks kiireim viis konstruktsioon:

=SUM(ABS(A1:C3))

Mooduli arvutamise näide

Et seda mustrit oleks lihtsam mõista, teeme seda kõike käsitsi. Esmalt kopeerige see oma exelis tühjale vahelehele. Seda tehakse nii:
Tõstke esile näide. Kui näide tasub kopeerida Exceli veebirakendusse, kopeerige ja kleepige üks lahter korraga. Tähelepanu – ridade ja veergude pealkirju ei pea esile tõstma.

Pärast valimist vajutage klaviatuuril klahve CTRL ja C. See kirjutab valitud välja üle. Seejärel minge vahekaardile ja kandke valik lahtrisse A1 üle, vajutades korraga klahve CTRL ja V. See on kopeerimistoiming. Kui töötate Exceli veebirakenduses, tehke seda protseduuri iga lahtri jaoks eraldi. Tähelepanu! Selle näite korrektseks toimimiseks tuleb see sisestada lahtri A1 vahekaardile.

Et lülituda tulemuste vaatamiselt selle mooduli tagastavate valemite vaatamisele, peate vajutama kahte klahvi koos, nimelt juhtklahvi + ` (nüri aktsent) või valides nupu "Kuva valemid".

3 Valem Tulemuse kirjeldus

Kui vahemik sisaldab positiivseid ja negatiivseid arve ning teil on vaja saada absoluutväärtuste summa, saab seda teha ühte lahtrisse kirjutades.

Absoluutväärtuste lisamise leidmine mis tahes vahemikus (näiteks A12: A15) on lihtne, looge lihtsalt täiendav veerg, kirjutades sellesse =ABS (A12). Seejärel arvutame funktsiooni SUM abil liitmise. Võimalik on kohe luua formuleering, mis otsib absoluutväärtuste summat. Täiendavat veergu pole vaja luua. See näeb välja selline = SUMPRODUCT(ABS(A12:A15)).

Teine võimalus moodulite liitmiseks on kasutada massiivi =SUM(ABS(A12:A15)). Alles pärast selle kasutuselevõttu tasub sisestamise asemel vajutada control ja shift + enter.

See näidis andis esitatud küsimusele täieliku ja ammendava vastuse ning nüüd ei tekita miski teile raskusi. Edu exceliga!

Mis on moodul ja milline funktsioon otsib Excelis selle väärtust? Numbri absoluutväärtuse tagastab ABS-funktsioon. Absoluutväärtus on arvu väärtus ilma selle märgita, see on moodul.
Kuidas on õige viis seda Excelis kirjutada?
ABS (soovitav number), näiteks ABS(-156).
Funktsiooni ABS(moodul) süntaksil on need argumendid.
Number on kohustuslik parameeter. See on reaalarv, mille väärtus tuleb leida.

Mooduli arvutamise näide

Et seda mustrit oleks lihtsam mõista, teeme seda kõike käsitsi. Esmalt kopeerige see oma exelis tühjale vahelehele. Seda tehakse nii:
Tõstke esile näide. Kui näide tasub kopeerida Exceli veebirakendusse, kopeerige ja kleepige üks lahter korraga. Tähelepanu – ridade ja veergude pealkirju ei pea esile tõstma.

Pärast valimist vajutage klaviatuuril klahve CTRL ja C. See kirjutab valitud välja üle. Seejärel minge vahekaardile ja kandke valik lahtrisse A1 üle, vajutades korraga klahve CTRL ja V. See on kopeerimistoiming. Kui töötate Exceli veebirakenduses, tehke seda protseduuri iga lahtri jaoks eraldi. Tähelepanu! Selle näite korrektseks toimimiseks tuleb see sisestada lahtri A1 vahekaardile.

Et lülituda tulemuste vaatamiselt selle mooduli tagastavate valemite vaatamisele, peate vajutama kahte klahvi koos, nimelt juhtklahvi + ` (nüri aktsent) või valides nupu "Kuva valemid".

3 Valem Tulemuse kirjeldus

Kui vahemik sisaldab positiivseid ja negatiivseid numbreid ja see on vajalik, saab seda teha ühte lahtrisse kirjutades.

Absoluutväärtuste lisamise leidmine mis tahes vahemikus (näiteks A12: A15) on lihtne, looge lihtsalt täiendav veerg, kirjutades sellesse =ABS (A12). Seejärel arvutame funktsiooni SUM abil liitmise. Võimalik on kohe luua formuleering, mis otsib absoluutväärtuste summat. Täiendavat veergu pole vaja luua. See näeb välja selline = SUMPRODUCT(ABS(A12:A15)).

Teine võimalus moodulite liitmiseks on kasutada massiivi =SUM(ABS(A12:A15)). Alles pärast selle kasutuselevõttu tasub sisestamise asemel vajutada control ja shift + enter.

See näidis andis esitatud küsimusele täieliku ja ammendava vastuse ning nüüd ei tekita miski teile raskusi. Edu exceliga!

Tutvumine VBA Excelis mooduli, protseduuri, vormi mõistetega. Erinevat tüüpi moodulid. Loo kasutajavorm. Sisseehitatud dialoogiboksid.

Lihtsaim viis VBA redaktorile lülitumiseks on vajutada klahvikombinatsiooni Alt+F11 (siin kasutatakse vasakpoolset Alt klahvi), kui Exceli aken on aktiivne. See kombinatsioon töötab kõigis programmi versioonides. Kui avanevas aknas pole vasakul "Project-VBAProject" explorer akent, helistage sellele peamenüüst, valides "View" - "Project Explorer". VBA redaktori sisemisi aknaid saab lohistada ja paigutada mujale peaaknas.

Moodul

Exceli töövihiku moodulid on failid, mis on loodud programmikoodi loomiseks ja talletamiseks protseduuride kujul (alamprogrammid, funktsioonid ja kohandatud atribuudid). Moodulid on mitut tüüpi.

Standardne moodul

Standardmoodul on eraldi fail, mis on manustatud Exceli töövihikusse ja kuulub kõikidesse töövihiku objektidesse, mis moodulitega suhtlevad (töövihik, tööleht, kasutajavorm). Standardmoodulit saab eksportida, importida ja kustutada. Selle kordumatute nimedega avalikud protseduurid on ilma täiendava adresseerimiseta saadaval kõigis teistes töövihiku moodulites. Mitteunikaalsete nimedega avalikud protseduurid nõuavad selle mooduli nime, millest neid kutsutakse.

Standardmooduli loomine:

  1. Avage Exceli töövihik, millele kavatsete uue standardmooduli lisada, või looge õppetöö jaoks uus töövihik.
  2. Avage VBA redaktor, vajutades Alt + F11.
  3. VBA redaktori aknas klõpsake menüükäsku "Insert" ja valige avanevas loendis "Moodul".

Seega olete loonud uue standardmooduli. Exploreris ilmus paremale kaust “Moodulid” ja selles fail “Module1” (või teise numbriga “Moodul”, kui raamatus oli juba mooduleid). Sisseehitatud salvestiga salvestamisel luuakse samad moodulid.

Avatud standardmooduli akna saate avada või sinna minna, tehes Exploreris topeltklõpsu selle nimel või tehes sellel kontekstimenüüga paremklõpsu ja valides "View Code". Lisaks on peamenüü vahekaardil "Aken" saadaval kõik juba avatud moodulid.

Oluline märkus: Excelis 2007–2016 salvestatakse pistikprogrammidega töövihikud nimega "Exceli makrotoega töövihik (.xlsm)". Kui lisasite töövihikusse "Exceli töövihik (.xlsx)" mooduli, siis selle salvestamisel või sulgemisel palub Excel teil see salvestada "Makrotoega Exceli töövihikuna (.xlsm)", muul juhul muudatused (loodud või imporditud mooduleid) ei säilitata.

raamatu moodul

Raamatumoodul kuulub ainult töövihiku objektile. Raamatu avamismooduli akna saate avada või sellele lülituda, tehes Exploreris topeltklõpsu üksusel "ThisBook" või avades hiire parema nupuga sellel oleva kontekstimenüü ja valides "View Code". Lisaks on avatud moodul saadaval peamenüü vahekaardil "Aken".

Lehe moodul

Lehemoodul kuulub ainult objektile Tööleht. Lehemooduli saate avada, tehes uurijas topeltklõpsu selle nimel või tehes sellel kontekstimenüüga paremklõpsu ja valides "Kuva kood". Lisaks saab töövihikust minna lehe moodulisse, tehes selle lehe sildil paremklõpsu ja valides kontekstimenüüst "View Code". Avatud moodul on saadaval peamenüü vahekaardil "Aken".

Vormi moodul

Vormimoodul kuulub ainult UserFormi objektile. Avage VBA redaktor, vajutades Alt + F11 ja klõpsake menüükäsku "Insert". Valige avanevast loendist "Kasutajavorm". See loob uue kasutajavormi "UserForm1". Parempoolses Exploreris ilmus kaust "Vormid" ja selles fail "UserForm1". Vormimooduli juurde pääseb topeltklõpsuga vormil endal või paremklõpsates Exploreris vormi nimel ja valides kontekstimenüüst "Kuva kood". Lisaks on avatud moodul saadaval peamenüü vahekaardil "Aken".

Ühes raamatus saate luua suvalise arvu standardmooduleid, ainult ühe raamatumooduli, iga lehe või vormi eksemplari jaoks ainult ühe lehe või vormimooduli.

Vormide ja moodulite avatud akende vahel saab vahetada, klõpsates peamenüüs vahekaarti “Aken”, kus on loetletud kõik avatud moodulid ja vormid (aktiivne objekt on märgitud linnukesega).

Menetlus

VBA Exceli protseduurid on jagatud kolme tüüpi:

  • Alam (alamprogramm),
  • Funktsioon (funktsioon),
  • Kinnisvara (kohandatud omadused).

Peamine erinevus funktsiooni ja alamprogrammi vahel seisneb selles, et funktsioon tagastab arvutuse tulemuse, alamprogramm aga mitte. Protseduur Property on kohandatud atribuutide loomiseks ja manipuleerimiseks (mitte sageli kasutatud).

Minge VBA Exceli redaktoris standardmoodulisse ja klõpsake menüükäsku "Lisa". Avanevas loendis valige "Protseduur ...". Ilmub aken, kus palutakse sisestada protseduuri nimi, valida tüüp ja nähtavusala. Loo paar erineva ulatusega protseduuri, olgu üks alam ja teine ​​funktsioon. Protseduuri alguse ja lõpu vahelises intervallis kirjutatakse programmi kood.

Private Sub Test() "Siia kirjutatakse programmi kood End Sub

Ulatus Privaatne tähendab, et seda protseduuri saab kutsuda ainult samast moodulist, kus see on kirjutatud.

Ulatus Avalik tähendab, et seda protseduuri saab kutsuda mitte ainult samast moodulist, milles see on kirjutatud, vaid ka mis tahes muust selle raamatu moodulist ja isegi teiste raamatute moodulitest.

Avaliku protseduuri (avalik) saab kirjutada ilma selgesõnalise nähtavuse viiteta – vaikimisi eeldatakse nähtavustsooni Avalik.

Esimene salvestus:

Public Sub Test() End Sub

ja teine ​​sissekanne:

Sub Test() End Sub

MsgBox on teabe kuvamise aken, mis tagastab kasutaja poolt vajutatud nupu numbrilise väärtuse.

InputBox on aken, mis kutsub kasutajat sisestama tekstilist teavet. Sellest aknast on ka laiendatud versioon – mida saab kasutada valitud lahtrivahemiku aadressi kirjutamiseks ja mitte ainult selleks.

Arvu moodul (ehk absoluutväärtus) on matemaatikas mittenegatiivne arv, mille väärtus sõltub arvu tüübist.
Kui number a mittenegatiivne, siis on moodul võrdne arvu endaga ( a juures a ≥ 0), kui negatiivne, siis on moodul võrdne selle positiivse väärtusega ( -a juures a< 0 ):

Leidmise eest mooduli väärtused Excelil on standardfunktsioon ABS.
Üldiselt on absoluutväärtuse otsimine üsna lihtne toiming arvutamiseks, seega on see funktsioon paljudes programmeerimiskeeltes standardne, näiteks VBA-s (Visual Basic for Applications) on mooduli valem kirjutatud ka kui Abs.

Mooduli funktsioon Excelis

Funktsiooni süntaks ja kirjeldus ABS:

ABS (arv)
Tagastab arvu mooduli (absoluutväärtuse).

  • Number(nõutav argument) - reaalarv, mille moodulit tuleb arvutada.

Määrame funktsiooni argumendiks suvalise reaalarvu, mille tulemusena saame selle absoluutväärtuse:

Vaatamata sellele, et mooduli märki matemaatikas tähistatakse vertikaalse ribana | , katse panna Excelisse mooduli märk, et otsida väärtust mooduli järgi, põhjustab tõrke näiteks valemi sisestamisel =|-29| Excel annab vea.

Alternatiivsed arvutusmeetodid

Kui äkki lendas ABS valem peast välja ja unustasite kuidas arvutada moodul Selle abiga Excelis kaalume mitmeid viise arvu absoluutväärtuse leidmiseks ilma seda valemit kasutamata.

Funktsiooni SIGN kasutamine

Definitsiooni kohaselt on moodul algarvu mittenegatiivne väärtus, seega korrutades arvu 1 või -1-ga, sõltuvalt numbri märgist (see tähendab, et korrutame positiivse 1-ga, korrutame negatiivse arvuga - 1), saame lõpuks absoluutväärtuse:

Funktsiooni ROOT kasutamine

Mooduli leidmiseks saame Excelis kasutada ka ruutjuure omadust.
Tuletage meelde, et Excel kasutab paarisastmete juurte arvutamiseks aritmeetilise juure kontseptsiooni.
Teisisõnu, paarisastme juur võtab Excelis alati mittenegatiivse väärtuse, nii et ruudukujulise arvu ruutjuure eraldamisel saame tulemuseks jälle absoluutväärtuse:

Edu ja peatse kohtumiseni Tutorexcel.ru ajaveebi lehtedel!

Üks mu kolleeg küsis minult kord, kuidas kasutada Exceli valemeid, et arvutada kindlaksmääratud vahemikus absoluutväärtuste summa. See küsimus kerkib foorumites üsna regulaarselt ja paljudel kasutajatel on selle näiliselt lihtsa toiminguga sageli suuri raskusi.

Kahjuks pole Microsoft Excelis sisseehitatud funktsiooni, mis suudaks moodulsummasid teha, nii et õige vastuse saamiseks peate veidi vaeva nägema.

Siin on meie andmed:

Näeme, et vahemiku arvude summa A2:A8 annab tulemuse -60 :

10 + 10 + 20 + -20 + 30 + -40 + -50 = -60

Kui arvestaksime absoluutväärtusi (arvud ilma märgita "-"), oleks tulemus:

10 + 10 + 20 + 20 + 30 + 40 + 50 = 180

1. võimalus – abisamba kasutamine

Minu arvates on parim viis Exceli absoluutväärtuste summa arvutamiseks kasutada abiveergu. Rakku B2 sisestage valem:

Siis venitame selle lahtrisse B8. Funktsioon ABS tagastab arvu mooduli. Nüüd saame lihtsalt vahemiku kokku võtta B2:B8 ja see annab meile tulemuse.

SUMMA(B2:B8)
=SUM(B2:B8)

Minu näites vahemik A1:A8 on täielik andmeleht. Seega valemi lisamisel =ABS(A2) rakku AT 2, Excel laiendas tabelit ja täitis automaatselt kõik veeru lahtrid. Järgmisena läksin vahekaardile Konstruktor(Disain), mis asub vahekaartide rühmas Töötamine tabelitega(Tabelitööriistad) ja märkige valiku kõrval olev ruut Kokku rida(Rida kokku). Kõik väärtused veerus B summeeriti automaatselt ja tulemus kuvati eraldi real.

Kogureal oleva summa arvutamiseks kasutage funktsiooni VAHEKOMMANDID(VAHEKOGU). See on üldine funktsioon, mis suudab sarnaselt funktsiooniga summeerida SUMMA(SUMMA). Kuid on ka olulisi erinevusi, näiteks VAHEKOMMANDID(SUBTOTAL) ignoreerib täielikult numbreid, mis on käsitsi või filtreerimise teel peidetud. On veel mõned erinevused, kuid see ei ole selle artikli teemaga seotud.

Abistav veeru meetod on tore, sest see annab teile rohkem paindlikkust, kui teil on vaja andmeid hiljem kasutada näiteks tabeli või pivot tabeli kujul. Lisaks saab abiveergu kasutada numbrite mooduli sortimiseks.

See on kahtlemata väga hea viis, aga mida teha siis, kui on vaja kõik ühte valemisse mahutada ilma abiveergudeta?

Valik 2 – funktsiooni SUM kasutamine massiivivalemis või SUMPRODUCT

Kasutage massiivi valemit või SUMPRODUCT(SUMPRODUCT) sellise probleemi lahendamiseks on väga konarlik lähenemine!

Funktsioon SUMMA massiivi valemis:

SUMMA(ABS(A2:A8))
=SUM(ABS(A2:A8))

Massiivivalemi sisestamisel ärge unustage vajutada Ctrl+Shift+Enter.

Valem koos SUMPRODUCT:

SUMPRODUCT (ABS(A2:A8))
=SUMMATOODE(ABS(A2:A8))

Arvestades, et on võimalik kasutada tõhusamat funktsiooni SUMIF(SUMIF) sama tulemuse saamiseks (vt valikut 3), kaotab nende kahe valemi kasutamise tee tugi. Mõlemad valemid töötavad väikeste andmevahemike puhul suurepäraselt, olen kindel, et te isegi ei tunne erinevust. Kui teil on vaja summeerida suur hulk väärtusi, aeglustub töö kiirus märgatavalt.

Valik 3 – SUMIF-i kasutamine

Arvan, et see lähenemine on kõigist eelnevalt loetletud kõige mugavam. Funktsiooni kasutamine SUMIF(SUMIF) väärtused jagunevad 2 massiivi: positiivsete ja negatiivsete arvudega ning summeeritakse. Arusaadavatel põhjustel eiratakse nulli. Siis lihtsalt lahutame positiivsest summast negatiivse summa (st liidame need kokku). Valem näeb välja selline:

SUMIF(A2:A8,">0")-SUMF(A2:A8"0")-SUMF(A2:A8"0","0","
Jätkame artiklite sarja Exceli matemaatiliste valemite kohta. Täna analüüsime "mooduli Excelis" kirjutamise valemit. Arvu moodulit kasutatakse arvu absoluutväärtuse, näiteks segmendi pikkuse määramiseks. Allpool anname mitu võimalust arvu mooduli arvutamiseks Excelis, põhifunktsioon on ABS ning lisaarvutus IF ja ROOT funktsioonide abil.

Nagu definitsioonist järeldub, on arvu moodul mittenegatiivne arv, arvu enda väärtus. Need. kui meil on negatiivne arv -7, siis moodul võrdub 7-ga. Moodul kirjutatakse kahe vertikaalse joonena:

|-7| = 7

Milleks seda kasutatakse? Kui meil on vektori väärtus, mis on võrdne -7-ga, kus miinus tähistab selle vastupidist suunda, siis vektori enda pikkuse leidmiseks peame arvutama arvu mooduli (sest pikkus ei saa olla negatiivne väärtus).

Samuti võib üsna sageli leida mooduli kasutamist negatiivse ajaväärtuse arvutamisel, kuid selle kohta on meil eraldi artikkel.

Mooduli arvutamine Excelis, ABS-funktsioon

Enamikus programmeerimiskeeltes leiab arvu mooduli ABS-funktsioon (absoluutväärtusest, abs olute). Meie armastatud Excel pole erand.

Sisestage lahtrisse valem:

Nagu funktsiooni kirjeldusest järeldub, on sellise valemi väärtus 7.

Kuidas arvutada moodulit IF kaudu, alternatiivne viis

Sisuliselt on funktsiooni Modulus ülesandeks määrata, kas arv on negatiivne või mitte, ja edastada selle väärtus. See tähendab, et põhitingimuse funktsiooni =IF() on lihtne käsitleda.


Makrod (VBA protseduurid) (63)
Mitmesugused (39)
Exceli vead ja tõrked (4)

Mis on moodul? Mis on moodulid?

Igasugune VBA kood tuleb kuskil salvestada. VBA-s koodide salvestamiseks kasutatakse mooduleid, mis salvestatakse töövihikusse. Raamat võib sisaldada nii palju mooduleid, kui soovite. Iga moodul võib omakorda sisaldada protseduuride komplekti (makrosid).
Kõiki raamatus saadaolevaid mooduleid saab vaadata läbi VBA redaktori ( alt+F11). Saadaolevad moodulid kuvatakse Project Exploreris redaktori vasakus servas.
joon.1
Objektiuurijat ennast ei pruugita vaikimisi kuvada ja siis tuleb see kuvada: kliki ctrl+R kas VBA redaktori menüüs- vaade-Projekti uurija

Moodulid on jagatud viide põhitüüpi:

Üldiselt on mooduleid ainult kahte tüüpi - tavaline ja klassimoodul, sest Lehe moodul, raamatu moodul, Kohandatud vormi moodul Ja klassi moodul on sisuliselt klassimoodulid. Aga ma jagasin need meelega mitmeks tüübiks, sest. just neid tüüpe kasutatakse sageli selgitusteks erinevates õpikutes ja foorumites ning Exceli raamatutes endis, need on välimuselt ja teatud funktsionaalsuselt erinevad.

Selleks, et luua uus standardmoodul (moodul), klassi moodul (ClassModule) või kasutajavorm (kasutajavorm) peate lihtsalt paremklõpsama Project Exploreri aknas ja valima üksuse Sisesta ja seejärel lisatud objekti tüüp ( moodul, Klassimoodul, Kasutajavorm). Mooduli saate lisada ka menüü kaudu: Sisesta- mooduli tüüp.
Eemaldamine on samuti lihtne: paremklõpsake projekti aknas soovitud moodulil ja valige Eemalda. Lisateavet kustutamise kohta leiate selle artikli artikli lõpus:

STANDARDMOODUL
joonisel 1 Moodul1 .
Kõige tavalisem moodulite tüüp, mida kasutatakse enamikul juhtudel. Just nendes loob makrosalvesti salvestatavaid makrosid. Kõik sellistes moodulites olevad koodid ja protseduurid on kirjutatud käsitsi või kopeeritud muudest allikatest (teisest moodulist, sellelt saidilt jne). Põhimõtteliselt sisaldab enamik koode standardmoodulitest. Need on mõeldud põhiprotseduuride ja avalike muutujate salvestamiseks, millele pääseb hiljem juurde mis tahes moodulist. Standardmooduli loomine: objektiuurija aknas paremklõpsake- Sisesta-moodul. Makrosalvestiga salvestamisel luuakse moodulid automaatselt ja neile määratakse automaatselt nimed.
Paljud saidi artiklites avaldatud koodid tuleb paigutada standardmoodulitesse. Selleks looge lihtsalt uus standardmoodul, kopeerige saidilt koodi tekst ja kleepige see.

LEHT MOODUL
Leht1 või leht1 - joonisel 1: Leht1(leht1), Leht2(leht2), Leht3(3. leht).
Raamatu igal lehel on oma moodul. Lehemoodulisse pääsemine on lihtsam kui teistesse moodulitesse sisenemine. Selleks paremklõpsake lihtsalt lehe vahekaarti ja valige kontekstimenüüst üksus. Lähtetekst (vaata koodi)
olenevalt Exceli versioonist võib seda venekeelset üksust nimetada samaks: Kuva kood või Allikas :

Võite minna keerulisemale teele - VBA redaktori kaudu: alt+F11 ja Objektiuurija (Project Explorer) aknas topeltklõpsake lehe nimega objektil või paremklõpsake lehe moodulil - vaata koodi.
Koodi paigutamisel lehemoodulisse tuleb meeles pidada, et selle lehe kopeerimisel või teise raamatusse ülekandmisel kopeeritakse ka kood, sest on lehe osa. See on korraga nii pluss kui miinus. Eeliseks on see, et pannes koodi lehe moodulisse, saab seda lehte kasutada levitamiseks mallina oma nuppudega nende koodide väljakutsumiseks (sh koodiga raamatute loomiseks) ja kogu funktsionaalsus on saadaval. Negatiivne külg on mõned lahtritele viitamise nüansid (lisateavet leiate sellest artiklist: vahemikule juurdepääs VBA-st) ja vajadus paigutada KÕIK sellel lehel kasutatud protseduurid, vastasel juhul võivad koodid teistele raamatutele ülekandmisel. töötada vigadega.

Lehemoodul sisaldab sisseehitatud sündmuste protseduure, millest igaüks vastutab konkreetse sündmuse käsitlemise eest sellel lehel. Saate neid vaadata järgmiselt: valige objekt (alloleval joonisel on nimekiri vasakul) Tööleht ja parempoolses loendis valige sündmus (selles loendis on kõik valitud lehel saadaolevad protseduurid):


Protseduurid, mille puhul sündmused on juba kasutusel, kuvatakse paksus kirjas.

Sündmusprotseduuride nimetused on üsna informatiivsed nimetused ja enamikku neist ei ole vaja hoolikalt lahti mõtestada. Kuid kõige olulisemad kasutatud osad pean igal juhul vajalikuks kirjeldada:

  • Aktiveerige- tekib siis, kui leht ise on aktiveeritud (kuid ei esine, kui toimub üleminek ühelt raamatult teisele ja see leht on seal aktiivne)
  • Enne DoubleClicki- tekib siis, kui topeltklõpsate lehe mis tahes lahtril. Oluline on pöörata tähelepanu läbitud argumentidele: Target ja Cancel. Sihtmärk – link lahtrile, milles toiming sooritati; Tühista – vastutab redigeerimisrežiimi tühistamise eest
  • EnneRightClick- tekib siis, kui paremklõpsate lehe mis tahes lahtril. Oluline on pöörata tähelepanu läbitud argumentidele: Target ja Cancel. Sihtmärk – link lahtrile, milles toiming sooritati; Tühista – vastutab hüpikmenüü tühistamise eest
  • Arvutama- tekib funktsioonide ja valemite ümberarvutamisel lehel
  • muuta- ilmneb lehe lahtrite väärtuste muutmisel. Oluline on pöörata tähelepanu läbitud Target argumendile. Sihtmärk on viide muudetud lahtrile. Võib erineda töötlemise ajal aktiivsest rakust
  • Deaktiveeri- tekib sellelt lehelt teisele sama töövihiku lehele liikumisel
  • Jälgi Hüperlinki- tekib sellel lehel loodud hüperlingi jälgimisel
  • ValikMuuda- tekib valitud lahtri/ala aadressi muutmisel. Oluline on pöörata tähelepanu läbitud Target argumendile. Sihtmärk – viide valitud lahtrite vahemikule. Sobib praegu valitud lahtritele

Üsna oluline punkt: Kui soovite sündmuste protseduuride kohta rohkem teada saada, pöörake alati tähelepanu muutujatele, mis antakse protseduurile argumentidena. Enamasti soovitan kasutada neid muutujaid, mitte välja mõelda kõikvõimalikke võimalusi sündmuse toimumise põhjustanud objekti arvutamiseks. Lehtürituse jaoks Tööleht_Muuda see on muutuja sihtmärk. Näiteks kleepige mis tahes lehemoodulisse järgmine kood:

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Muudetud lahtri aadress:"&Siht.aadress&_ "; Aktiivne lahtri aadress: "& Selection.Address, vbInformation, "www.site" End Sub

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Muudetud lahtri aadress: " & Target.Address & _ "; Active Cell Address: " & Selection.Address, vbInformation, "www.site" End Sub

Pärast seda kirjutage lahtrisse A1 väärtus 5 ja vajutage sisestusklahvi. Sündmus Muuda käivitub, kui redigeerimine on lõpetatud – st. hetkel, kui vajutate Enter. See liigub lahtrisse A2 (enamasti, kui seadetes pole teisiti määratud) ja kuvatakse teade, mis näitab, et lahter A1 on muudetud ja nüüd on valitud A2. Need. Sihtmärk on alati viide muudetud lahtrile, olenemata sellest, mis on hetkel valitud. See sündmus (Worksheet_Change) ei käivitu lahtrite väärtuste muutmisel valemitega. Ainult käsitsi sisestamine.

Märge: kõigi saidil loetletud koodide jaoks avage lihtsalt vajalik moodul (raamat või leht) ja kleepige soovitatud kood. Parandus võib osutuda vajalikuks ainult juhtudel, kui teie faili moodulil Sheet või Book on juba vajaliku sündmuse protseduuri kood.

RAAMATU MOODUL
See raamat või see tööraamat - joonisel 1: See raamat .
Raamatumoodulile pääseb ligi ainult VBA redaktori Project Exploreri kaudu – topeltklõps See raamat (See tööraamat) või hiire parem nupp moodulil - vaata koodi. Raamatumoodul sisaldab ka "sisseehitatud" sündmuste protseduure. Nagu ka lehe jaoks, valige objektide loendist (üleval vasakul) Töövihik. Protseduuride valimise parempoolses aknas ja ka lehtede moodulis on kõik objekti jaoks saadaval olevad protseduurid See raamat. Raamatusündmuste protseduuride kasutamise näite leiate artiklist Kuidas jälgida sündmust (näiteks lahtri valimist) mis tahes raamatus?
Kuid seal kehtivad kõik samad reeglid - peamine on mitte unustada argumente, mis on nendest protseduuridest saadaval ja Exceli enda edastatud. Näiteks argument Tühista on saadaval sündmuse Workbook_BeforeClose jaoks. Seda saab kasutada, kui te ei soovi, et kasutaja sulgeks töövihiku ilma lahtrit A1 täitmata. Siin on näide sellisest koodist:

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets("Report").Range("A1").Value = "" Then MsgBox "Te peate täitma lahtri A1 lehel "Aruanne", vbCritical, "www.site " Tühista = Tõene "tühista raamatu sulgemine End If End Sub

Koodist on näha, et "Aruande" lehel peab olema mittetühi lahter A1 (leht "Aruanne" peab ka selles raamatus olemas olema). Kuid on veel üks asi – mõned Mina. See on lühike kutse klassi mooduli objektile, antud juhul võrdub see ThisWorkbooki kutsumisega. Ja veel üks näide ThisBook mooduli koodist, mis keelab originaalraamatu salvestamise, võimaldades seda salvestada ainult üksuse kaudu Salvesta kui:

Privaatne alamtöövihik_BeforeSave(ByVal SaveAsUI Booleanina, Cancel As Boolean) Kui SaveAsUI = Väär Siis "kasutage lihtsat salvestamist MsgBox "See töövihik on mall. Saate selle salvestada ainult läbi Salvesta kui", vbCritical, "www.site" Tühista = Tõene "tühista raamatu salvestamine End If End Sub

See võib olla vajalik, kui raamat on täitmiseks vajalike väljadega mall ja soovite vältida originaaldokumendi juhuslikku salvestamist. Kuigi seda saab teha ka ilma makrodeta, saab töövihiku salvestada kirjutuskaitstud õigustega.

VORMI MOODULID
kasutajavorm- joonisel 1 Kasutajavorm1 .
Sisaldub UserFormis ja selle objektides. Kasutajavormides on põhimõtteliselt kõik seotud vormi enda ja selle vormi elementidega (nupud, tekstikastid, liitkastid (rippmenüüd) jne). Kasutajaga suhtlemiseks on väga mugav kasutada oma rakendustes UserFormsi. Sest vormide kaudu on väga mugav jälgida kasutajate toiminguid ja andmelehtedele juurdepääsu saab takistada neid peites. Vorm luuakse samamoodi nagu moodul: objektiuurija aknas paremklõpsake- Sisesta-Kasutajavorm. Vorme kasutavate koodide näiteid leiate artiklitest: Igal kasutajal on oma leht / vahemik, Kuidas jätta lahtrisse ainult numbrid või ainult tekst?

KLASSI MOODUL
Klassimoodul – joonisel 1 klass1 .
Enamasti on see loodud spetsiaalselt erinevate objektide sündmuste jälgimiseks. On ebatõenäoline, et algajad peavad õppima VBA-d, kuigi kõik sõltub käsil olevast ülesandest. Kuid tavaliselt tundub see algajatele liiga keeruline. Igal juhul on parem enne klassimoodulitega töötamist õppida, kuidas tavaliste moodulitega vähemalt natuke töötada ja ise protseduure kirjutada. Kuidas sellist moodulit lisada: paremklõpsake objektiuurija aknas- Sisesta-klassi moodul. Lisateavet klassimoodulite ja nendega töötamise kohta saate lugeda sellest artiklist: Töö klassimoodulitega. Seal on kirjeldatud kõik põhiprintsiibid ja lisatud on näidisfail.

MOODULI EEMALDAMINE
Moodulite eemaldamise sammud on kõigi tüüpide puhul samad. Selleks peate minema soovitud raamatu VBA projekti, valima soovitud mooduli, paremklõpsake sellel ja valige ilmuvast menüüst Eemalda (mooduli nimi)...(Eemalda moodul1, eemalda kasutajavorm1, eemalda klass1 jne). Pärast seda ilmub aken, kus küsitakse "Kas soovite eksportida (mooduli nimi) enne selle eemaldamist?". See tähendab, et VBA küsib: kas soovite salvestada mooduli koodide koopiad enne selle kustutamist? Üldreeglina vali Ei. Aga kui soovid salvestada eemaldatud mooduli koodide tekstid eraldi faili, siis nõustud nupuga Jah. Teil palutakse valida mooduli salvestamiseks kaust ja saate sellele isegi eraldi nime anda.

MOODULI ÜLEKANDMINE, IMPORT JA EKSPORT
Mõnikord peate mooduli ühest raamatust teise teisaldama. Seda saab teha mitmel viisil. Lihtsaim on avada mõlemad raamatud, minna projektiuurijasse - leida soovitud moodul - haarata see hiire vasaku nupuga ja ilma nuppu vabastamata lohistada teise raamatu projekti:


Pidage meeles, et sel viisil saab teisaldada ja kopeerida ainult standardmoodulit, klassimoodulit ja moodulit UserForm. Lehe ja raamatu moodulite koodid tuleb teisaldada lihttekstina: minge ThisBook moodulisse (kust tahame kopeerida) - kopeerige kogu kood - minge teise raamatu ThisBook moodulisse ja kleepige kopeeritud:


Mooduli eksport (salvestage eraldi faili)
Kui teil on vaja salvestada standardmoodul, klassimoodul või vormimoodul ja mitte seda kohe teise raamatusse üle kanda, saate mooduli eksportida. Miks võib seda vaja minna? Reeglina kodust tööle koodide ülekandmiseks saata need kellelegi teisele arvutile (makrodega faili saatmine võib olla ettevõtte turvapoliitikaga keelatud) jne. Seda tehakse lihtsalt: paremklõpsake moodulil - ekspordifail.
Eksporditud moodulitel on olenevalt mooduli tüübist erinevad laiendused. Standardmoodulite puhul on see nii .bas(Module1.bas), klassi moodulite jaoks - .cls(Klass1.cls). Kuid vormimoodulite jaoks luuakse kaks tervet faili: UserForm1 .frm ja UserForm1 .frx. Oluline on neid koos hoida – üht ilma teiseta ei saa hiljem faili importida. .frx-fail salvestab teavet vormi ja selle elementide visuaalse kuvamise kohta, kui nii võib öelda. Frm-fail salvestab otse vormi koodide tekstid ja teenuseteabe (vormi nimi ja suurus, mõned globaalsed direktiivid ja link .frx-failile). Seetõttu ei ole soovitatav neid kahte faili ilma vastavate oskusteta ümber nimetada lootuses, et hiljem kõik toimib.
Mooduli import (varem eksporditud üleviimine uude raamatusse)
Eksporditud mooduli teise raamatusse ülekandmiseks peate lihtsalt hiire parema nupuga valima objektiuurijas soovitud projekti - impordi moodul- valige dialoogiboksis vajalik moodul.
Iga moodulit saab eksportida, kuid mitte importida. Kuigi lehtede ja raamatute moodulid eksporditakse eraldi failidesse (muide, laiendiga .cls), ei saa neid ette nähtud viisil importida. Need imporditakse uute klassimoodulitena ja ei midagi enamat. Seetõttu peate lehtede ja raamatute moodulitest koodide ülekandmiseks siiski kasutama koodide otse kopeerimist ja kleepimist.
Ja kõige tipuks - saate mooduleid automaatselt üle kanda VBA koodidega: Kuidas programmiliselt protseduurikoodi lisada, moodulit kopeerida

Kas artikkel aitas? Jaga linki oma sõpradega! Videotunnid

("Alumine riba":("textstyle":"static","textpositionstatic":"bottom","textautohide":true,"textpositionmarginstatic":0,"textpositiondynamic":"bottomleft","textpositionmarginleft":24," textpositionmarginright":24,"textpositionmarginright":24,"textpositionmarginbottom":24,"texteffect":"slide","texteffecteasing":"easeOutCubic","texteffectduration":600,"texteffectslidedirection":"left","texteffectslidedistance" :30,"texteffectdelay":500,"texteffectseparate":false,"texteffect1":"slide","texteffectslidedirection1":"right","texteffectslidedistance1":120,"texteffecteasing1":"easeOutCubic","texteffectduration1":600 "texteffectdelay1":1000,"texteffect2":"slide","texteffectslidedirection2":"right","texteffectslidedistance2":120,"texteffecteasing2":"easeOutCubic","texteffectduration2":600,"texteffectdelay2":150 textcss":"display:block; padding:12px; text-align:left;","textbgcss":"kuva:plokk; asukoht: absoluutne; ülemine: 0px; vasak: 0px; laius: 100%; kõrgus: 100% ; background-color:#333333; läbipaistmatus:0,6; filter:alpha(opacity=60);","titlecss":"display:block; asend:suhteline; font:paks 14px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; color:#fff;","descriptioncss":"display:block; asend:suhteline; font: 12px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; värv:#fff; margin-top:8px;","buttoncss":"display:block; asend:suhteline; margin-top:8px;","texteffectresponsive":true,"texteffectresponsivesize":640,"titlecssresponsive":"font-size:12px;","descriptioncssresponsive":"display:none !important;","buttoncssresponsive": "","addgooglefonts":false,"googlefonts":"","textleftrightpercentforstatic":40))