Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows telefon
  • Šta znači DIM u Visual Basicu i BASIC-u? Potprogrami osnovnog jezika. Zahtijeva eksplicitnu deklaraciju varijable

Šta znači DIM u Visual Basicu i BASIC-u? Potprogrami osnovnog jezika. Zahtijeva eksplicitnu deklaraciju varijable

Dim je imao različita značenja pripisuje mu se.

Našao sam reference na vrijednost Dim "Izjavi u pamćenje", relevantnija veza je dokument Dim Statement koji je objavio Oracle kao dio jezične reference Siebel VB. Naravno, možete tvrditi da ako ne deklarirate varijable u memoriji, gdje to učiniti? Možda "Deklarirajte u modulu" - dobra alternativa, s obzirom na to kako se koristi Dim.

Po mom mišljenju, "Deklariraj u memoriji" je zapravo mnemonika stvorena da olakša učenje kako koristiti Dim . "Deklariraj u memoriji" vidim kao najbolje značenje jer opisuje ono u čemu se radi trenutne verzije jezik, ali ovo nije tačno značenje.

U stvari, na samom početku Basic Dim koristi se samo za deklarisanje nizova. Za redovne varijable nije korištena ključna riječ, umjesto toga njihov tip se zaključio iz njihovog imena. Na primjer, ako ime varijable završava na $, onda je to string (što je nešto što možete vidjeti u nazivima metoda prije VB6, kao što je Mid$). Dakle, koristili ste samo Dim za mjerenje veličina nizova (imajte na umu da ReDim mijenja veličinu nizova).

Da li je to zaista važno? Mislim da ova ključna riječ ima smisla vještački jezik. To ne smije biti riječ na engleskom ili bilo kom drugom prirodnom jeziku. Dakle, može značiti samo ono što želite, važno je samo da funkcionira.

U svakom slučaju, ovo nije sasvim tačno. Jer BASIC je dio naše kulture i razumije zašto je to tako, nadam se da će pomoći da poboljšamo našu viziju svijeta.

Sjedim za kompjuterom sa željom da pomognem u očuvanju ovog malog djelića naše kulture koji se čini izgubljenim, zamijenjen našim nagađanjem o čemu se radi. Tako sam iskopao MSDN i trenutne i stare CD-ove iz verzije iz 1998. godine. Također sam pretražio dokumentaciju za stari QBasic [trebao je koristiti DOSBox] i uspio sam nabaviti Dartmouth priručnik da vidim šta kažu o Dimu. Na moje razočarenje, ne govore šta Dim znači, samo kako se koristi.

Ali prije nego što je moja nada pomračila, uspio sam pronaći ovaj priručnik za mikrokompjuter BBC-a (za koji se tvrdi da je iz 1984. i ne sumnjam u to). BBC mikroračunar koristio je varijantu BASIC-a nazvanu BBC BASIC i opisana je u dokumentu. Iako ne kaže šta Dim misli, kaže (na strani 104):

Možete izmjeriti N$ da biste imali onoliko zapisa koliko želite. Na primjer, DIM N $(1000) će kreirati niz stringova sa prostorom za 1000 različitih imena.

Kao što sam rekao, to ne kaže da Dim označava dimenziju, ali je dokaz da je povezivanje Dim-a sa Dimenzijom bilo uobičajeno u vrijeme pisanja ovog teksta.

Sada sam kasnije dobio dodatno iznenađenje (na stranici 208), naslov odjeljka koji opisuje ključnu riječ DIM (napomena: ovo nije navedeno u sadržaju) kaže:

Veličina DIM niza

Dakle, nisam dobio citat "Dim stoji...", ali mislim da je jasno da bi svaka pristojna osoba koja može pročitati ovaj dokument Dim shvatila kao dimenziju.

Sa novom nadom, odlučio sam da pronađem način da izaberem Dima. Opet, nisam našao račun na ovu temu, ali uspio sam pronaći konačan citat:

Prije nego što možete koristiti niz, morate ga definirati u instrukciji DIM (dimenzija).

Ovo možete pronaći kao dio True BASIC online korisničkih vodiča na web stranici True BASIC inc, kompanije koju je osnovao Thomas Eugene Kurtz, ko-izumitelj BASIC-a.

Dakle, tokom ponovo koristiti Dim je skraćenica od Dimenzija i da. Ovo je postojalo u FORTRAN-u i ranije, tako da je vjerovatno da je odabrano pod utjecajem FORTRAN-a kao što je Patrick McDonald rekao u svom odgovoru.

Dim sum kao string = "ovo nije kineski obrok" ​​REM primjer upotrebe u VB.NET ;)

Deklariše varijablu ili niz.

Ako su varijable navedene odvojene zarezima (na primjer, DIM sPar1, sPar2, sPar3 AS STRING), može se definirati samo varijabla Variant. IN opšti slučaj, svaka varijabla mora biti definirana u posebnom redu.

DIM sPar1 KAO STRING

DIM sPar2 KAO STRING

DIM sPar3 KAO STRING

Dim deklarira lokalne varijable u procedurama. Izrazi PUBLIC i PRIVATE se koriste za deklariranje globalnih varijabli.

sintaksa:

Zatamnjena varijabla [(od početka do kraja)] [, varijabla2 [(od početka do kraja)] [,...]]

Parametri:

Varijabla: proizvoljno ime za varijablu ili niz.

Početak, kraj: numeričke vrijednosti ili konstante koje određuju broj elemenata (Broj_elemenata=(Početak-Kraj)+1) i raspon indeksa.

Početak i kraj također mogu biti numerički izrazi ako se ReDim primjenjuje na nivou procedure.

Tip: ključna riječ koja deklarira tip varijable.

Ključna riječ: tip varijable

Bool: Varijabla tipa Boolean (tačno, netačno)

Valuta: varijabla tipa Valuta (vrijednost valute sa dužinom razlomka od 4 pozicije)

Datum: Varijabla tipa Datum

Dvostruko: varijabla s pomičnim zarezom dvostruke preciznosti (1.79769313486232 x 10E308 - 4.94065645841247 x 10E-324)

Integer: varijabla tipa Integer (-32768 - 32767)

dugo: varijabilno dugačak tip Integer (-2 147 483 648 - 2 147 483 647)

Objekt: varijabla tipa Object (Napomena: ova varijabla se može definirati samo kasnije pomoću naredbe Set!)

Jednostruki: jednostruki varijabilni (3,402823 x 10E38 - 1,401298 x 10E-45)

String: varijabla tipa String with maksimalna dužina 64.000 ASCII znakova.

: varijabla tipa Variant (pokriva sve tipove, kako je definirano). Ako ključna riječ nije specificirana, tada se varijable automatski definiraju kao varijable tipa Variant, osim kada se koristi operator iz opsega DefBool - DefVar.

U osnovnom jeziku Lotus® Symphony™, varijable ne moraju biti eksplicitno deklarirane. Jedini izuzetak su nizovi. Varijabla se može deklarirati pomoću naredbe Dim; ako postoji više deklaracijskih izjava, oni su odvojeni zarezima. Da biste deklarirali tip varijable, navedite znak deklaracije tipa iza njenog imena ili unesite odgovarajuću ključnu riječ.

U jeziku Basic Lotus Symphony možete definirati jednodimenzionalni ili višedimenzionalni nizovi, specificirajući odgovarajući tip varijable. Nizovi su korisni za rad sa listama i tabelama. Elementima niza može se pristupiti preko indeksa, koji se može specificirati putem numeričkog izraza ili varijable.

Nizovi se deklarišu pomoću Dim operatora. Raspon indeksa se može definirati na dva načina:

DIM tekst(20) kao niz REM 21 elemenata označenih brojevima od 0 do 20

DIM tekst (5 do 25) kao niz REM 21 elemenata označenih brojevima od 5 do 25

DIM tekst (-15 do 5) kao niz REM 21 elemenata (uključujući 0)

REM sa brojevima od -15 do 5

2D polje podataka

DIM tekst(20,2) kao niz REM 63 elementa numerisani od 0 do 20 nivo 1, 0 do 20 nivo 2, i 0 do 20 nivo 3

Tipovi niza se mogu proglasiti dinamičkim ako ReDim izraz specificira broj dimenzija u proceduri ili funkciji koja sadrži niz. Općenito, dimenzija niza je definirana samo jednom i ne može se mijenjati. Niz se može deklarisati u proceduri koristeći ReDim naredbu. Dimenzije se mogu odrediti samo pomoću numeričke izraze. Ovo osigurava da se poštuju ograničenja dužine polja.

primjer:

Dim sVar As String

Dim iVar As Integer

sVar = "Lotus Symphony"

REM Dvodimenzionalno polje podataka

Dim tekst(20,2) kao String

Const sDim as String = "Dimenzija:"

stext(i,ii) = str(i) & sDim & str(ii)

Većina ljudi radije ne koristi identifikatore za označavanje varijabli. Umjesto toga, oni koriste Dim operator, takva operacija se zove - oglasi. Na primjer:

Dim A As Integer

Dim B kao žica

Deklaracije varijabli mogu se kombinovati u istom redu.

Dim A kao cijeli broj, ime kao cijeli broj

Uobičajena greška je korištenje sljedećeg izraza:

Dim X, Y, Z kao cijeli broj

Pretpostavka je da će sve varijable biti cijeli brojevi. U stvari, X i Y će biti deklarisani kao Variant i samo Z kao Integer. Da biste to izbjegli, morate svaki put koristiti identifikator tipa. Ako je varijabla deklarirana pomoću naredbe Dim, ako se koristi varijabla s istim imenom i drugim identifikatorom tip će se desiti greška "dvostruke definicije" pri učitavanju programa.

Kada dodjeljujete varijablu tipa Variant, možete koristiti -Dim operator bez -AS prefiksa. Na primjer:

Potreba za deklarisanjem varijabli.

Jedan od mnogih uobičajene greške u programu je upotreba nedeklariranih varijabli. Problem je u tome Visual basic omogućava vam da kreirate varijablu čim se jednom pojavi u programu. Ako pomiješate ime varijable, Visual Basic kreira novu sa sličnim imenom i dodjeljuje joj zadanu vrijednost, što odmah rezultira greškom. Ovu grešku je teško uočiti jer su imena varijabli vrlo slična.

Najjednostavniji način izbjeći takva greška sastoji se u prisilnoj deklaraciji svih varijabli. Visual Basic prikazuje poruku kada postoji greška u imenu. Visual Basic pruža ovu mogućnost, ali se ne koristi po defaultu. Operater potreban za ovo se zove Option Explicit.

Za opšta provera varijable u programu, morate staviti naredbu Option Explicit u odjeljak General.

Da biste postavili dati operator u odjeljku Općenito trebate:

Otvorite prozor koda

Odaberite Generalni objekat sa liste objekata u prozoru Objekt

Izaberite Deklaracija sa liste Procedura

Unesite opciju Explicit.

Promjena zadanih vrijednosti za tipove

Pretpostavimo da sve varijable u programu moraju biti cijeli brojevi. Radi praktičnosti, u ovom slučaju se koristi operator DefType. Za sve cjelobrojne varijable to izgleda ovako:

Definitivno A-Z

Osnovni oblici različitih DefType operatora

Konvencije tipa se uvijek mogu promijeniti pomoću identifikatora ili naredbe Dim za određenu varijablu. Obično se naredba DefType nalazi u istom odeljku (Općenito) kao i izjava Option Explicit.

Varijabilni opseg

Programeri koriste termin opseg kada žele da govore o mogućnosti korišćenja varijable iz jednog dela programa u drugom njegovom delu. U Visual Basicu deklaracija varijabli unutar procedure su izolovani jedan od drugog. U terminima programiranja, to znači da su ove varijable lokalni.

6. Deklarisanje varijabli: naredba Dim za razne vrste podaci

Ljudi najčešće pokušavaju da ne koriste identifikatore kada označavaju tip varijable (posebno za tipove kao što su datum/vrijeme). Umjesto toga, koriste naredbu Dim. Takva operacija se zove deklaracija. Deklarisanje tipova varijabli prilikom rukovanja događajima prije njihove upotrebe - naravno, uz komentare - jeste dobar stil u programiranju. Takođe omogućava poboljšanje "čitljivosti" programskih tekstova.

Ako je varijabla deklarirana pomoću naredbe Dim, korištenje varijable s istim imenom i drugim identifikatorom tipa rezultirat će greškom "dvostruke definicije" kada se program pokrene. Na primjer, ako sljedeći izraz Dim Count As Integer deklarira varijablu Count, onda ne možete koristiti varijable Counts, Count! Count# i Count®. Trebali biste koristiti samo ime Count%, ali to je samo još jedan oblik za ime varijable Count.

Da dodijelite tip varijante varijabli, koristite Dim operator bez As:

Dim F00 tretira F00 kao varijablu varijante tipa.

Možete to napisati i ovako: Dim Foo As Variant - lakše je za čitanje.

Svaka informacija koja bi trebala biti dostupna svim procedurama događaja povezanih sa formom stavlja se u (Općenito) odjeljak obrasca.

Da biste stavili opciju Eksplicitna u odjeljak (Općenito), slijedite ove korake.

1. Otvorite prozor koda.

2. Izaberite objekat (Općenito) sa liste objekata ponuđenih u prozoru Objekt.

3. Odaberite (Declaration) sa liste Proc.

4. Unesite opciju Eksplicitno.

Često je potrebno koristiti deklaracije na nivou obrasca u odjeljku (Općenito) kada korisnik eksperimentiše s primjerima programa iz sistem pomoći.

Da biste kopirali primjer programa iz sistema pomoći, koristite dugme Kopiraj u prozoru Primer koda. Zatim možete koristiti opciju Zalijepi iz izbornika Uredi da zalijepite primjer u prozor Code. Kada Visual Basic naiđe na naredbu Option Explicit, prestaje dopuštati nedeklarirane varijable. Ako i dalje pokušate koristiti takvu varijablu, prikazat će se poruka o grešci.

Da biste primijenili obaveznu deklaraciju tipa varijable, možete koristiti stranica Editor dijaloga Tools|0ptions. Programer uvijek označi ovu kućicu. Nakon toga, naredba Option Explicit se automatski postavlja na ona mjesta u kodu gdje je potrebna.

Iz knjige Hajde da napravimo kompajler! od Crenshaw Jacka

Iz knjige Internet Intelligence [Action Guide] autor Yushchuk Evgeny Leonidovich

Metatražilice Interneta sa primjerima pretraživanja raznih vrsta informacija informacioni sistem, koji bi objedinio prednosti svih pretraživača

Iz knjige Serverske tehnologije skladištenje podataka u Windows okruženje® 2000 Windows® Server 2003 od Dilip Naik

Poglavlje 10 Mogućnosti podsistema za skladištenje u različitim Windows verzije NT Prethodna poglavlja su razmatrala Windows arhitekturu u smislu specifičnih mogućnosti podsistema za skladištenje podataka. Ovo poglavlje je namijenjeno profesionalcima koji koriste podsisteme za skladištenje podataka

Iz knjige HTML 5, CSS 3 i Web 2.0. Izrada modernih web stranica. autor Dronov Vladimir

Iz knjige HTML 5, CSS 3 i Web 2.0. Izrada modernih web stranica autor Dronov Vladimir

Deklarisanje varijabli Prije upotrebe varijabli u kodu web skripte, preporučuje se da je deklarirate. Da biste to učinili, koristi se operator deklaracije varijable var, nakon čega je naznačeno ime varijable: var x; Sada se deklariranoj varijabli može dodijeliti bilo koja

Iz VBA knjige za lutke autor Cummings Steve

Deklarisanje promenljivih Kao što je objašnjeno u poglavlju 6, deklaracija je VBA izjava koju koristite da kažete kompajleru da nameravate da koristite imenovani objekat i eksplicitno opišete tip tog objekta. Izjave deklaracije se najčešće koriste

Iz knjige Programski jezik C za PC autor Bochkov S. O.

Deklarisanje više varijabli u jednom redu U jednom redu programski kod Također možete deklarirati više varijabli. Ključna riječ Dim se ispisuje samo jednom, a varijable su odvojene zarezima. Ali ne zaboravite navesti tip podataka za svaku od varijabli u

Iz knjige The Art of Scripting Programming komandna školjka od Coopera Mendela

Iz knjige Linux programiranje u primjerima autor Robbins Arnold

Deklarisanje varijabli prilagođenog tipa Poput ugrađenih tipova podataka, prilagođeni tip ostaje apstraktan koncept sve dok ne deklarišete varijablu odgovarajućeg tipa. Ovo ne zahtijeva ništa posebno - standardna sintaksa je u redu

Iz knjige Kraj Holivara. Pascal protiv C autor Krivtsov M. A.

Deklariranje varijabli klase Da biste deklarirali varijable koje će biti potrebne u nekoliko svojstava ili metoda, koristite odjeljak Deklaracije na samom početku modula klase. Uvijek deklarirajte ove varijable kao lokalne (privatne), jer su objekti uglavnom namijenjeni

Iz autorove knjige

Deklaracije varijabli Ovaj odjeljak pruža dosljedan opis sintakse i semantike deklaracija varijabli. Varijante varijabli su navedene u sljedećoj tabeli: Tabela 3.4. Tip varijable Objašnjenje Jednostavna varijabla Skalarna varijabla cijelog broja ili

Iz autorove knjige

Deklaracija podataka Ako ključnu riječ blizu, daleko ili ogroman odmah slijedi identifikator, to znači da će odgovarajući element podataka biti smješten u standardni segment podataka (za blizinu) ili može biti smješten u drugi segment podataka (za daleko ili ogroman ). Na primjer,

Iz autorove knjige

9.4. Deklariranje varijabli: deklariraj i tvori naredbe Izjave deklariranja i skupa su ugrađene izjave (oni su apsolutno identični jedni drugima i sinonimi) i imaju za cilj da nametnu ograničenja na varijable. Ovo je vrlo slab pokušaj kontrole tipa, koji

Iz autorove knjige

8.1.2. Pregled različitih tipova sistema datoteka Diskusija u ovaj odjeljak Specifičan za Linux. Međutim, mnogi moderni Unix sistemi takođe imaju slične karakteristike. Preporučujemo da proučite dokumentaciju za vaš sistem. Istorijski gledano, V7 Unix je podržavao samo jedan tip

Iz autorove knjige

Standardni tipovi podaci i deklaracija varijabli Vrijednost dodijeljena varijabli mora odgovarati njenom tipu navedenom u odjeljku opisa. Postoje četiri standardna tipa vrijednosti u Pascalu (pored onih koje se mogu dodatno definirati u svakom programu -

Iz autorove knjige

Standardni tipovi podataka i deklaracije varijabli int - integerlong - long integershort - short integerunsigned - unsigned integerfloat - realdouble - dug realchar - karakter Za razliku od Pfscal-a, u C-u nema logičkih varijabli. Primjeri deklaracija varijabli:

U VBA, kao iu svakom drugom programskom jeziku, varijable i konstante se koriste za pohranjivanje bilo koje vrijednosti. Kao što naziv implicira, varijable se mogu mijenjati, dok konstante pohranjuju fiksne vrijednosti.

Na primjer, konstanta Pi pohranjuje vrijednost 3.14159265… Broj “Pi” se neće mijenjati tokom izvršavanja programa, ali je ipak zgodnije takvu vrijednost pohraniti kao konstantu.

U isto vrijeme, možemo koristiti varijablu sVAT_stopa da pohrani stopu PDV-a na kupljenu robu. Varijabilna vrijednost sVAT_stopa može varirati ovisno o kupljenom proizvodu.

Tipovi podataka

Sve varijable i konstante su određenog tipa podataka. Tabela ispod navodi tipove podataka koji se koriste u VBA sa opisom i rasponom mogućih vrijednosti:

Tip podataka Veličina Opis Raspon vrijednosti
bajtova 1 bajt Pozitivni cijeli brojevi; često se koristi za binarne podatke 0 do 255
Boolean 2 bajta Može biti ili Tačno ili Netačno tačno ili netačno
Integer 2 bajta Cijeli brojevi (bez razlomaka) od -32 768 do +32 767
Dugo 4 bajta Veliki cijeli brojevi (bez razlomaka) od -2 147 483 648 do +2 147 483 647
Single 4 bajta Broj s pomičnim zarezom sa jednom preciznošću od -3.4e38 do +3.4e38
Dvostruko 8 bajtova Broj s pomičnim zarezom dvostruke preciznosti -1.8e308 do +1.8e308
Valuta 8 bajtova Broj s pomičnim zarezom, s fiksnim brojem decimalnih mjesta od -922 337 203 685 477.5808 do +922 337 203 685 477.5807
Datum 8 bajtova Datum i vrijeme - Podaci tipa Datum je predstavljen brojem s pomičnim zarezom. cijeli dio ovaj broj izražava datum i frakcijski dio- vrijeme od 1. januara 100. do 31. decembra 9999
Objekat 4 bajta Referenca objekta Bilo koja referenca objekta
String promjene Skup znakova. String tip može biti fiksne ili promjenjive dužine. Češće se koristi s promjenjivom dužinom Fiksna dužina - do približno 65.500 znakova. varijabilna dužina– do otprilike 2 milijarde znakova
Varijanta promjene Može sadržavati datum, float ili niz znakova. Ovaj tip se koristi u slučajevima kada nije unaprijed poznato koja će se vrsta podataka unijeti. Broj - Dvostruki, niz - String

Očigledno, koristeći gornju tablicu i odabirom odgovarajuće vrste podataka, možete ekonomičnije koristiti memoriju (na primjer, odaberite tip podataka Integer umjesto Dugo ili Single umjesto Dvostruko). Međutim, kada koristite kompaktnije tipove podataka, morate paziti da vaš kod ne pokušava u njih uklopiti nesrazmjerno velike vrijednosti.

Deklarisanje varijabli i konstanti

Napomena prevodioca: Govoreći o varijablama u VBA, vredi pomenuti još jednu važna tačka. Ako deklarišemo varijablu, ali joj ne dodijelimo nikakvu vrijednost, tada se ona inicijalizira sa zadanom vrijednošću:
tekstualni nizovi– se inicijaliziraju prazne linije;
brojevi - vrijednost 0;
varijable tipa Boolean– Netačno;
datumi su 30. decembar 1899. godine.

Prije nego što se može koristiti varijabla ili konstanta, ona mora biti deklarirana. Da biste to učinili, dodajte sljedeće makrou: jednostavan niz kod:

Dim Ime_varijable As Data_Type

U gornjem redu koda Ime_varijable je ime varijable koja će se koristiti u kodu, i Data_Type- ovo je jedan od tipova podataka iz tabele date malo ranije u ovom članku. Na primjer:

Dim sVAT_Rate As Single Dim i As Integer

Konstante se deklarišu na sličan način, ali kada se deklarišu konstante, njihova vrijednost mora biti odmah naznačena. Na primjer, ovako:

Const iMaxCount = 5000 Const iMaxScore = 100

Nije potrebno deklarisati varijable u Excel-u. Prema zadanim postavkama, sve unesene, ali nedeklarirane varijable u Excelu će imati tip Varijanta i moći će prihvatiti i numeričku i tekstualnu vrijednost.

Dakle, programer može koristiti novu varijablu u bilo kojem trenutku (čak i ako nije deklarirana), a Excel će je tretirati kao varijablu tipa Varijanta. Međutim, postoji nekoliko razloga zašto to ne bi trebalo učiniti:

  1. Upotreba memorije i brzina računanja. Ako ne deklarirate varijablu s naznakom tipa podataka, tada će ona po defaultu biti postavljena na tip Varijanta. Ovaj tip podataka koristi više memorijeČini se da nekoliko dodatnih bajtova po varijabli - ne toliko, ali u praksi u kreiranih programa može postojati hiljade varijabli (posebno kada se radi o nizovima). Stoga, dodatna memorija koju koriste varijable poput Varijanta, u poređenju sa varijablama tipa Integer ili Single, može dodati značajan iznos. Osim toga, operacije sa varijablama tipa Varijanta izvršavaju se mnogo sporije nego sa varijablama drugih tipova, odnosno dodatnih hiljadu varijable tipa Varijanta može značajno usporiti proračune.
  2. Sprečavanje grešaka u kucanju u nazivima varijabli. Ako su sve varijable deklarirane, tada se VBA naredba može koristiti − Opcija Eksplicitna(o tome ćemo kasnije) kako bi se identifikovale sve nedeklarisane varijable, čime se eliminiše pojava greške u programu kao rezultat pogrešno napisanog imena varijable. Na primjer, korištenjem varijable named sVAT_stopa, možete napraviti grešku u kucanju i, dodijelivši vrijednost ovoj varijabli, napisati: “VATRate = 0,175”. Očekuje se da će od sada, varijabla sVAT_stopa treba da sadrži vrijednost 0,175 - ali naravno ne. Ako je omogućen način obavezne deklaracije svih korištenih varijabli, tada će VBA kompajler odmah ukazati na grešku, jer neće pronaći varijablu VATRate među najavljenim.
  3. Isticanje vrijednosti koje se ne podudaraju s deklariranim tipom varijable. Ako deklarišete varijablu određeni tip i pokušajte da mu dodijelite podatke drugog tipa, onda će se pojaviti greška, bez ispravljanja koje, možete dobiti pad programa.Na prvi pogled ovo može izgledati kao dobar razlog da ne deklarirate varijable, ali u stvari , što se prije ispostavi da je jedna od varijabli primila ne podatke koje je trebalo primiti – tim bolje! U suprotnom, ako program nastavi da radi, rezultati mogu biti netačni i neočekivani, te će biti mnogo teže pronaći uzrok grešaka, a moguće je i da će se makro "uspješno" izvršiti. Kao rezultat toga, greška će ostati neprimijećena i rad će se nastaviti s netočnim podacima!

S tim u vezi, poželjno je otkriti netačan tip podataka i ispraviti takve greške u kodu što je prije moguće. Iz ovih razloga, prilikom pisanja VBA makro preporučljivo je deklarirati sve varijable.

Opcija Eksplicitna

Operater Opcija Eksplicitna uzrokuje da se deklariraju sve varijable koje se koriste u VBA kodu, i označava sve nedeklarirane varijable kao greške tokom kompilacije (prije nego što počne izvršavanje koda). Primjena ovog operatora nije teška - samo napišite ovaj red na samom vrhu VBA datoteke:

Opcija Eksplicitna

Ako želite uvijek umetnuti Opcija Eksplicitna na vrh svakog novog VBA modula kreiranog, ovo se može uraditi automatski. Da biste to učinili, morate omogućiti opciju Zahtijeva deklaraciju varijable u postavkama VBA editora.

Ovo se radi ovako:

  • U meniju Visual Basic Editor kliknite Alati > Opcije
  • U dijalogu koji se pojavi otvorite karticu Urednik
  • Označite polje Zahtijeva deklaraciju varijable i pritisnite uredu

Kada je omogućeno, string Opcija Eksplicitnaće se automatski umetnuti na početak svakog novog kreiranog modula.

Opseg varijabli i konstanti

Svaka deklarirana varijabla ili konstanta ima svoj ograničeni opseg, odnosno ograničeni dio programa u kojem ova varijabla postoji. Opseg zavisi od toga gde je napravljena deklaracija varijable ili konstante. Uzmimo, na primjer, varijablu sVAT_stopa, koji se koristi u funkciji Ukupni troškovi. Sljedeća tabela govori o dvije opcije za promjenjiv opseg sVAT_stopa deklarirano na dvije različite pozicije u modulu:

Opcija Eksplicitno Dim sVAT_Rate kao pojedinačna funkcija Ukupni_trošak() kao dvostruka ... Krajnja funkcija

Ako je varijabla sVAT_stopa deklarirano na samom početku modula, tada će opseg ove varijable biti cijeli modul (tj. varijabla sVAT_stopaće biti prepoznate od strane svih procedura u ovom modulu).

Stoga, ako je u funkciji Ukupni troškovi varijabla sVAT_stopaće tada biti dodijeljena neka vrijednost sljedeća funkcija, koji se izvršava unutar istog modula, koristit će varijablu sVAT_stopa sa istim značenjem.

Međutim, ako se pozove neka funkcija koja se nalazi u drugom modulu, onda je za nju varijabla sVAT_stopa neće biti poznato.

Opcija Eksplicitna funkcija Total_Cost() As Double Dim sVAT_Rate As Single ... End Funkcija

Ako je varijabla sVAT_stopa deklarirano na početku funkcije Ukupni troškovi, tada će njegov opseg biti ograničen samo na ovu funkciju (tj. unutar funkcije Ukupni troškovi, možete koristiti varijablu sVAT_stopa, ali ne van).

Prilikom pokušaja korištenja sVAT_stopa u drugoj proceduri, VBA kompajler će prijaviti grešku jer ova varijabla nije deklarirana izvan funkcije Ukupni troškovi(pod uslovom da se koristi operator Opcija Eksplicitna).

U primjeru prikazanom iznad, varijabla je deklarirana na nivou modula pomoću ključne riječi Dim. Međutim, može biti potrebno da se deklarirane varijable mogu koristiti u drugim modulima. U takvim slučajevima, deklarirati varijablu umjesto ključne riječi Dim ključna riječ se mora koristiti Javno.

Inače, da bi se deklarisala varijabla na nivou modula, umjesto ključne riječi Dim može se koristiti ključna riječ Privatno, što ukazuje da je ova varijabla namijenjena za korištenje samo u trenutnom modulu.

Također možete koristiti ključne riječi za deklariranje konstanti. Javno I Privatno, ali ne umjesto ključne riječi Konst, zajedno sa njim.

IN slijedećim primjerima prikazana upotreba ključne riječi Javno I Privatno primijenjen na varijable i konstante.

Top Related Articles