Izpratne par mainīgajiem un konstantēm programmā Excel

Šajā rakstā jūs uzzināsiet, kādas konstantes un mainīgie ir makro, kur tos var izmantot un kāda ir galvenā atšķirība starp dažādiem datu veidiem. Tāpat tiks atklāts, kāpēc ir vajadzīgas konstantes, ja vari vienkārši uzrakstīt mainīgo un nekad to nemainīt.

Tāpat kā citas programmēšanas valodas, datus var glabāt mainīgajos vai konstantēs (abus bieži dēvē arī par datu konteineriem). Šī ir galvenā atšķirība starp šiem jēdzieniem. Pirmais var mainīties atkarībā no tā, kas notiek programmā. Savukārt konstantes tiek iestatītas vienreiz un nemaina to vērtību.

Konstantes var būt noderīgas, ja viena un tā pati liela vērtība ir jāizmanto vairākas reizes. Tā vietā, lai kopētu numuru, varat vienkārši ierakstīt konstantes nosaukumu. Piemēram, varat izmantot konstanti “Pi”, lai saglabātu Pi, kas ir nemainīga vērtība. Tas ir ļoti liels, un katru reizi ir diezgan grūti to uzrakstīt vai meklēt un kopēt. Un tā, pietiek uzrakstīt divas rakstzīmes, un vide automātiski izmanto vēlamo numuru.

Excel lietotājam ir jādeklarē mainīgie, ja ik pa laikam ir jāmaina tajos saglabātā vērtība. Piemēram, varat iestatīt mainīgo ar nosaukumu sVAT_Rate, kas saglabās produkta pašreizējo PVN likmi. Ja tas mainās, varat to ātri labot. Tas ir īpaši noderīgi tiem, kas veic uzņēmējdarbību Amerikas Savienotajās Valstīs, kur dažas preces var nebūt apliekamas ar PVN (un arī šis nodoklis dažādās valstīs ir atšķirīgs).

Datu tipi

Katrs datu konteiners var būt viens no vairākiem veidiem. Šeit ir tabula, kurā aprakstīti apstrādātās informācijas standarta veidi. To ir daudz, un iesācējam sākotnēji var šķist, ka tie atkārtojas. Bet tā ir iluzora sajūta. Lasiet tālāk, lai uzzinātu, kāpēc ir tik svarīgi norādīt pareizo datu tipu.

Nelieliem skaitļiem nav ieteicams izmantot datu tipu, kas aizņem vairāk vietas atmiņā. Piemēram, skaitlim 1 ir pietiekami izmantot baitu tipu. Tas pozitīvi ietekmēs izpildāmā moduļa veiktspēju, īpaši vājos datoros. Bet šeit ir svarīgi neaiziet pārāk tālu. Ja izmantojat pārāk kompaktu datu tipu, pārāk liela vērtība var neietilpst tajā.

Konstantu un mainīgo deklarēšana

Nav ieteicams izmantot datu konteineru, iepriekš to nedeklarējot. Tad var rasties vairākas problēmas, kuru novēršanai ir nepieciešams uzrakstīt dažas nelielas koda rindiņas ar mainīgo vai konstantu uzskaitījumu.

Lai deklarētu mainīgo, tiek izmantots paziņojums Dim. Piemēram, šādi:

Dim Variable_Name kā vesels skaitlis

Mainīgā_nosaukums ir mainīgā nosaukums. Tālāk tiek uzrakstīts operators Kā, norādot datu tipu. Virkņu “Variable_Name” un “Integer” vietā varat ievietot savu vārdu un datu tipu.

Var deklarēt arī konstantes, taču vispirms jānorāda to vērtība. Viena no iespējām ir:

Const iMaxCount = 5000

Taisnības labad jāsaka, ka dažos gadījumos var iztikt bez mainīgā deklarēšanas, taču šajā gadījumā tiem automātiski tiks piešķirts tips Variants. Tomēr tas nav ieteicams šādu iemeslu dēļ:

  1. Variants tiek apstrādāts daudz lēnāk, un, ja šādu mainīgo ir daudz, vājos datoros informācijas apstrādi var ievērojami palēnināt. Šķiet, ka šīs sekundes izšķirs? Bet, ja jums ir jāraksta liels skaits koda rindiņu un pēc tam tas jāpalaiž arī vājos datoros (kuri joprojām tiek pārdoti, ņemot vērā, ka mūsdienu biroja komplektiem ir nepieciešams daudz RAM), varat pilnībā pārtraukt darbu. Ir gadījumi, kad nepārdomāta makro rakstīšana noveda pie viedgrāmatu iesaldēšanas, kurām ir mazs operatīvās atmiņas apjoms un kuras nav paredzētas sarežģītu uzdevumu veikšanai. 
  2. Ir atļautas kļūdas nosaukumos, kuras var novērst, izmantojot Option Explicit paziņojumu, kas ļauj atrast nedeklarētu mainīgo, ja tāds tiek atrasts. Tas ir vienkāršs veids, kā atklāt kļūdas, jo mazākās drukas kļūdas dēļ tulks nevar identificēt mainīgo. Un, ja ieslēdzat mainīgā deklarācijas režīmu, tulks vienkārši neļaus palaist makro, ja tiks atrasti datu konteineri, kas nav deklarēti moduļa pašā sākumā.
  3. Izvairieties no kļūdām, ko izraisa mainīgo vērtības, kas neatbilst datu tipam. Parasti teksta vērtības piešķiršana veselam mainīgajam radīs kļūdu. Jā, no vienas puses, vispārējs tips tiek piešķirts bez deklarācijas, bet, ja tie ir deklarēti iepriekš, tad var izvairīties no nejaušām kļūdām.

Tāpēc, neskatoties uz visu, ir ļoti ieteicams visus mainīgos deklarēt Excel makro.

Ir vēl viena lieta, kas jāpatur prātā, deklarējot mainīgos. Mainīgajam, to deklarējot, var nepiešķirt nekādas vērtības, taču šajā gadījumā tas iegūst noklusējuma vērtību. Piemēram:

  1. Rindas ir tukšas.
  2. Skaitļi iegūst vērtību 0.
  3. Būla tipa mainīgie sākotnēji tiek uzskatīti par nepatiesiem.
  4. Noklusējuma datums ir 30. gada 1899. decembris.

Piemēram, jums nav jāpiešķir vērtība 0 veselam mainīgajam, ja iepriekš nebija norādīta vērtība. Viņa jau satur šo numuru.

Opcija Skaidrs paziņojums

Šis paziņojums ļauj deklarēt visus mainīgos, kas tiek izmantoti VBA kodā, un noteikt nedeklarētu konteineru klātbūtni pirms koda palaišanas. Lai izmantotu šo funkciju, makro koda pašā augšdaļā vienkārši ierakstiet Option Explicit koda rindiņu.

Ja jums katru reizi kodā ir jāiekļauj šis paziņojums, varat to izdarīt, izmantojot īpašu iestatījumu VBA redaktorā. Lai iespējotu šo opciju, jums ir:

  1. Dodieties uz izstrādes vidi pa ceļu – Rīki > Opcijas.
  2. Logā, kas tiek atvērts pēc tam, atveriet cilni Redaktors.
  3. Visbeidzot, atzīmējiet izvēles rūtiņu blakus vienumam Nepieciešama mainīgā deklarācija.

Pabeidzot šīs darbības, noklikšķiniet uz pogas “OK”. 

Tas ir viss, tagad, rakstot katru jaunu makro, šī rinda automātiski tiks ievietota koda augšdaļā.

Konstantu un mainīgo lielumu apjoms

Katram mainīgajam vai konstantei ir tikai ierobežota darbības joma. Tas ir atkarīgs no tā, kur jūs to deklarējat.

Pieņemsim, ka mums ir funkcija Kopējās izmaksas(), un tas izmanto mainīgo sPVN_likme. Atkarībā no pozīcijas modulī tam būs atšķirīga darbības joma:

Izteikta opcija

Dim sVAT_Rate As Single

Funkcija Total_Cost() kā dubultā

.

.

.

End Function

Ja mainīgais ir deklarēts paša moduļa augšdaļā, tas izplatās visā šajā modulī. Tas ir, to var nolasīt ar katru procedūru.

Turklāt, ja kāda no procedūrām mainīja mainīgā vērtību, tad arī nākamā nolasīs šo laboto vērtību. Bet citos moduļos šis mainīgais joprojām netiks nolasīts.

Izteikta opcija

Funkcija Total_Cost() kā dubultā

Dim sVAT_Rate As Single

   .

   .

   .

End Function

Šajā gadījumā mainīgais tiek deklarēts procedūrā, un tulks radīs kļūdu, ja tas tiks izmantots citā procedūrā.

Ja vēlaties, lai mainīgo nolasa citi moduļi, atslēgvārda Dim vietā ir jāizmanto atslēgvārds Publisks. Līdzīgi varat ierobežot mainīgā tvērumu tikai pašreizējam modulim, izmantojot publisko paziņojumu, kas tiek rakstīts vārda Dim vietā.

Konstantu apjomu var iestatīt līdzīgi, taču atslēgvārds šeit tiek rakstīts kopā ar operatoru Const.

Šeit ir tabula ar labu piemēru, kā tas darbojas ar konstantēm un mainīgajiem.

Izteikta opcija

Publisks sVAT_Rate As Single

Public Const iMax_Count = 5000

Šajā piemērā varat redzēt, kā publiskais atslēgvārds tiek izmantots, lai deklarētu mainīgo, un kas jums jāieraksta Visual Basic redaktorā, lai deklarētu publisko konstanti. Šo vērtību konteineru darbības joma attiecas uz visiem moduļiem.
Izteikta opcija

Privāts sVAT_Rate As Single

Privāts Const iMax_Count = 5000

Šeit mainīgie un konstantes tiek deklarēti, izmantojot atslēgvārdu Privāts. Tas nozīmē, ka tos var redzēt tikai pašreizējā modulī, un citu moduļu procedūras tos nevar izmantot.

Kāpēc ir vajadzīgas konstantes un mainīgie

Konstantu un mainīgo lielumu izmantošana ļauj palielināt koda saprotamības pakāpi. Un, ja iesācējiem kopumā nav jautājumu par to, kāpēc ir nepieciešami mainīgie, tad ir daudz neskaidrību par konstantu nepieciešamību. Un šis jautājums no pirmā acu uzmetiena šķiet diezgan loģisks. Galu galā mainīgo var deklarēt vienreiz un nekad to vairs nemainīt.

Izrādās, ka atbilde ir kaut kur tajā pašā plaknē attiecībā uz datu tipu izmantošanu, kas aizņem lielu vietu atmiņā. Ja mums ir darīšana ar lielu skaitu mainīgo, mēs varam nejauši mainīt esošo konteineru. Ja lietotājs nosaka, ka noteikta vērtība nekad nemainīsies, vide to automātiski kontrolēs.

Tas ir īpaši svarīgi, ja makro ir rakstījuši vairāki programmētāji. Var zināt, ka daži mainīgie nedrīkst mainīties. Un otrs nav. Ja norādāt operatoru Const, cits izstrādātājs zinās, ka šī vērtība nemainās.

Vai arī, ja ir konstante ar vienu nosaukumu un mainīgajam ir atšķirīgs, bet līdzīgs nosaukums. Izstrādātājs tos var vienkārši sajaukt. Piemēram, vienu mainīgo, kas nav jāmaina, sauc par Mainīgais11, bet otru, ko var rediģēt, sauc par Mainīgais1. Cilvēks var automātiski, rakstot kodu, nejauši izlaist papildu vienību un to nepamanīt. Rezultātā tiks mainīts vērtību konteiners, kuru nedrīkst aiztikt.

Vai arī pats izstrādātājs var aizmirst, kuriem mainīgajiem var pieskarties un kuriem nē. Tas bieži notiek, ja kods tiek rakstīts vairākas nedēļas, un tā izmērs kļūst liels. Šajā laikā ir ļoti viegli aizmirst pat to, ko nozīmē tas vai cits mainīgais.

Jā, šajā situācijā var iztikt ar komentāriem, bet vai nav vieglāk norādīt vārdu Const?

secinājumi

Mainīgie ir būtiska makro programmēšanas sastāvdaļa, kas ļauj veikt sarežģītas darbības, sākot no aprēķiniem līdz lietotāja informēšanai par noteiktiem notikumiem vai konkrētu vērtību norādīšanai izklājlapas šūnās.

Konstantes jālieto, ja izstrādātājs droši zina, ka šo konteineru saturs turpmāk nemainīsies. Tā vietā ieteicams neizmantot mainīgos, jo ir iespējams nejauši kļūdīties.

Atstāj atbildi