Pag-unawa sa Mga Variable at Constant sa Excel Macros

Sa artikulong ito, matututunan mo kung ano ang mga constant at variable sa mga macro, kung saan magagamit ang mga ito, at kung ano ang pangunahing pagkakaiba sa pagitan ng iba't ibang uri ng data. Ibubunyag din kung bakit kailangan ang mga constant, kung maaari ka lamang magsulat ng isang variable at hindi kailanman baguhin ito.

Tulad ng iba pang mga programming language, ang data ay maaaring iimbak sa mga variable o constants (na parehong madalas na tinutukoy bilang mga lalagyan ng data). Ito ang pangunahing pagkakaiba sa pagitan ng mga konseptong ito. Ang dating ay maaaring magbago depende sa kung ano ang mangyayari sa programa. Sa turn, ang mga constant ay nakatakda nang isang beses at hindi binabago ang kanilang halaga.

Maaaring maging kapaki-pakinabang ang mga constant kung kailangan mong gumamit ng parehong malaking halaga nang maraming beses. Sa halip na kopyahin ang numero, maaari mo lamang isulat ang pangalan ng pare-pareho. Halimbawa, maaari mong gamitin ang pare-parehong "Pi" upang mag-imbak ng Pi, na isang pare-parehong halaga. Ito ay napakalaki, at sa bawat oras na ito ay medyo mahirap isulat o hanapin at kopyahin ito. At kaya, sapat na ang pagsulat ng dalawang character, at awtomatikong ginagamit ng kapaligiran ang nais na numero.

Kailangang magdeklara ng mga variable ang user ng Excel kung kailangan niyang baguhin ang value na nakaimbak sa mga ito paminsan-minsan. Halimbawa, maaari kang magtakda ng variable na tinatawag na sVAT_Rate, na mag-iimbak ng kasalukuyang rate ng VAT para sa produkto. Kung magbabago ito, mabilis mo itong maiwawasto. Ito ay partikular na kapaki-pakinabang para sa mga nagnenegosyo sa United States, kung saan ang ilang mga kalakal ay maaaring hindi napapailalim sa VAT (at ang buwis na ito ay iba rin sa bawat estado).

Uri ng data

Ang bawat lalagyan ng data ay maaaring isa sa ilang uri. Narito ang isang talahanayan na naglalarawan sa mga karaniwang uri ng naprosesong impormasyon. Marami sa kanila, at maaaring tila sa isang baguhan sa simula ay inuulit nila ang isa't isa. Ngunit ito ay isang ilusyon na pakiramdam. Magbasa para matutunan kung bakit napakahalaga ng pagtukoy sa tamang uri ng data.

Hindi inirerekomenda na gumamit ng uri ng data na kumukuha ng mas maraming espasyo sa memorya para sa maliliit na numero. Halimbawa, para sa numero 1, sapat na gamitin ang uri ng Byte. Magkakaroon ito ng positibong epekto sa pagganap ng executable module, lalo na sa mga mahihinang computer. Ngunit mahalagang huwag masyadong lumayo dito. Kung gagamit ka ng uri ng data na masyadong compact, maaaring hindi magkasya dito ang isang napakalaking halaga.

Pagdedeklara ng mga Constant at Variable

Ang paggamit ng isang lalagyan ng data nang hindi muna ipinapahayag ito ay lubos na hindi hinihikayat. Pagkatapos ay maaaring lumitaw ang isang bilang ng mga problema, upang maiwasan kung saan kinakailangan na magsulat ng ilang maliliit na linya ng code na may enumeration ng mga variable o constants.

Upang magdeklara ng variable, ginagamit ang Dim statement. Halimbawa, tulad nito:

Dim Variable_Name Bilang Integer

Ang Variable_Name ay ang pangalan ng variable. Susunod, ang Bilang operator ay nakasulat, na nagpapahiwatig ng uri ng data. Sa halip na ang mga string na "Variable_Name" at "Integer", maaari mong ipasok ang iyong sariling pangalan at uri ng data.

Ang mga Constant ay maaari ding ideklara, ngunit kailangan mo munang tukuyin ang kanilang halaga. Ang isa sa mga pagpipilian ay:

Const iMaxCount = 5000

In fairness, sa ilang pagkakataon ay magagawa mo nang hindi nagdedeklara ng variable, ngunit sa kasong ito, awtomatiko silang bibigyan ng uri ng Variant. Gayunpaman, hindi ito inirerekomenda para sa mga sumusunod na kadahilanan:

  1. Ang variant ay pinoproseso nang mas mabagal, at kung maraming ganoong mga variable, ang pagpoproseso ng impormasyon ay maaaring makabuluhang mapabagal sa mga mahihinang computer. Mukhang ang mga segundong iyon ang magpapasya? Ngunit kung kailangan mong magsulat ng isang malaking bilang ng mga linya ng code, at pagkatapos ay patakbuhin din ito sa mga mahihinang computer (na ibinebenta pa rin, dahil ang mga modernong office suite ay nangangailangan ng maraming RAM), maaari mong ganap na ihinto ang trabaho. May mga kaso kung saan ang maling pag-iisip na pagsulat ng mga macro ay humantong sa pagyeyelo ng mga smartbook na may maliit na halaga ng RAM at hindi idinisenyo upang magsagawa ng mga kumplikadong gawain. 
  2. Ang mga maling pagkaka-print sa mga pangalan ay pinapayagan, na mapipigilan sa pamamagitan ng paggamit ng Option Explicit na pahayag, na nagbibigay-daan sa iyong makahanap ng hindi nadeklarang variable, kung may makikita. Ito ay isang madaling paraan upang makita ang mga error, dahil ang pinakamaliit na typo ay nagiging sanhi ng interpreter na hindi matukoy ang variable. At kung i-on mo ang variable na declaration mode, hindi ka papayagan ng interpreter na patakbuhin ang macro kung may nakitang mga lalagyan ng data na hindi idineklara sa pinakasimula ng module.
  3. Iwasan ang mga error na dulot ng mga variable na halaga na hindi tumutugma sa uri ng data. Karaniwan, ang pagtatalaga ng isang text value sa isang integer variable ay maghahatid ng error. Oo, sa isang banda, ang isang generic na uri ay itinalaga nang walang deklarasyon, ngunit kung sila ay idineklara nang maaga, kung gayon ang mga random na error ay maaaring iwasan.

Samakatuwid, sa kabila ng lahat, lubos na inirerekomenda na ideklara ang lahat ng mga variable sa Excel macros.

May isa pang bagay na dapat tandaan kapag nagdedeklara ng mga variable. Posibleng hindi magtalaga ng anumang mga halaga sa isang variable kapag idineklara ito, ngunit sa kasong ito nakakakuha ito ng isang default na halaga. Halimbawa:

  1. Ang mga linya ay ginawang walang laman.
  2. Ang mga numero ay tumatagal sa halagang 0.
  3. Ang mga variable ng uri ng Boolean ay unang itinuturing na mali.
  4. Ang default na petsa ay Disyembre 30, 1899.

Halimbawa, hindi mo kailangang italaga ang value 0 sa isang integer variable kung walang value ang dating tinukoy. Naglalaman na siya ng numerong ito.

Opsyon tahasang Pahayag

Binibigyang-daan ka ng pahayag na ito na ideklara ang lahat ng mga variable na ginagamit sa VBA code at matukoy ang pagkakaroon ng anumang hindi idineklara na mga lalagyan bago patakbuhin ang code. Para magamit ang feature na ito, sumulat lang ng linya ng Option Explicit code sa pinakatuktok ng macro code.

Kung kailangan mong isama ang pahayag na ito sa iyong code sa bawat oras, magagawa mo ito gamit ang isang espesyal na setting sa editor ng VBA. Upang paganahin ang pagpipiliang ito, dapat mong:

  1. Pumunta sa development environment kasama ang path – Tools > Options.
  2. Sa window na bubukas pagkatapos nito, buksan ang tab na Editor.
  3. At panghuli, lagyan ng check ang kahon sa tabi ng item na Mangailangan ng Variable Declaration.

Sa pagkumpleto ng mga hakbang na ito, mag-click sa pindutang "OK". 

Iyon lang, ngayon kapag isinusulat ang bawat bagong macro, ang linyang ito ay awtomatikong ilalagay sa tuktok ng code.

Saklaw ng mga Constant at Variable

Ang bawat variable o constant ay may limitadong saklaw lamang. Depende kung saan mo idineklara.

Kumbaga may function tayo Total_Cost(), at ginagamit nito ang variable sVAT_Rate. Depende sa posisyon sa module, magkakaroon ito ng ibang saklaw:

Malinaw na Opsyon

Dim sVAT_Rate Bilang Single

Function Total_Cost() Bilang Doble

.

.

.

End Function

Kung ang isang variable ay idineklara sa tuktok ng isang module mismo, ito ay nagpapalaganap sa buong module na iyon. Ibig sabihin, mababasa ito ng bawat procedure.

Bukod dito, kung binago ng isa sa mga pamamaraan ang halaga ng variable, babasahin din ng susunod ang naitama na halagang ito. Ngunit sa ibang mga module ay hindi pa rin mababasa ang variable na ito.

Malinaw na Opsyon

Function Total_Cost() Bilang Doble

Dim sVAT_Rate Bilang Single

   .

   .

   .

End Function

Sa kasong ito, ang variable ay idineklara sa loob ng pamamaraan, at ang interpreter ay magtapon ng isang error kung ito ay ginamit sa ibang pamamaraan.

Kung gusto mong mabasa ng ibang mga module ang variable, dapat mong gamitin ang Pampublikong keyword sa halip na ang Dim na keyword. Katulad nito, maaari mong limitahan ang saklaw ng isang variable sa kasalukuyang module lamang sa pamamagitan ng paggamit ng Public statement, na isinulat sa halip na ang salitang Dim.

Maaari mong itakda ang saklaw ng mga constant sa katulad na paraan, ngunit ang keyword dito ay nakasulat kasama ng Const operator.

Narito ang isang talahanayan na may magandang halimbawa kung paano ito gumagana sa mga constant at variable.

Malinaw na Opsyon

Pampublikong sVAT_Rate Bilang Single

Pampublikong Const iMax_Count = 5000

Sa halimbawang ito, makikita mo kung paano ginagamit ang Pampublikong keyword upang magdeklara ng variable, at kung ano ang kailangan mong isulat sa editor ng Visual Basic upang magdeklara ng isang pampublikong constant. Nalalapat ang saklaw ng mga value container na ito sa lahat ng module.
Malinaw na Opsyon

Pribadong sVAT_Rate Bilang Single

Pribadong Const iMax_Count = 5000

Dito, ang mga variable at constant ay ipinahayag gamit ang Pribadong keyword. Nangangahulugan ito na ang mga ito ay makikita lamang sa loob ng kasalukuyang module, at ang mga pamamaraan sa ibang mga module ay hindi magagamit ang mga ito.

Bakit kailangan ang mga constant at variable

Ang paggamit ng mga constants at variable ay nagbibigay-daan sa iyo upang mapataas ang antas ng pagkaunawa ng code. At kung ang mga nagsisimula sa pangkalahatan ay walang mga katanungan tungkol sa kung bakit kailangan ang mga variable, kung gayon mayroong maraming mga kalabuan tungkol sa pangangailangan para sa mga constants. At ang tanong na ito ay tila, sa unang sulyap, medyo lohikal. Pagkatapos ng lahat, maaari mong ideklara ang isang variable nang isang beses at hindi na ito muling baguhin.

Ang sagot ay lumalabas na nasa isang lugar sa parehong eroplano tungkol sa paggamit ng mga uri ng data na sumasakop sa isang malaking espasyo sa memorya. Kung tayo ay nakikitungo sa isang malaking bilang ng mga variable, maaari nating aksidenteng baguhin ang isang umiiral na lalagyan. Kung inireseta ng user na hindi kailanman magbabago ang isang partikular na halaga, awtomatikong makokontrol ito ng kapaligiran.

Ito ay lalong mahalaga kapag ang macro ay isinulat ng ilang programmer. Maaaring malaman ng isang tao na ang ilang variable ay hindi dapat magbago. At ang isa ay hindi. Kung tinukoy mo ang operator ng Const, malalaman ng isa pang developer na hindi nagbabago ang halagang ito.

O, kung mayroong isang pare-pareho na may isang pangalan, at ang variable ay may ibang, ngunit katulad na pangalan. Maaaring malito lang sila ng developer. Halimbawa, ang isang variable na hindi kailangang baguhin ay tinatawag na Variable11, at ang isa pang maaaring i-edit ay tinatawag na Variable1. Ang isang tao ay maaaring awtomatikong, kapag nagsusulat ng code, aksidenteng laktawan ang isang karagdagang yunit at hindi ito mapansin. Bilang resulta, ang lalagyan para sa mga halaga ay mababago, na hindi dapat hawakan.

O ang developer mismo ay maaaring makalimutan kung aling mga variable ang maaari niyang hawakan at kung alin ang hindi niya magagawa. Madalas itong nangyayari kapag isinulat ang code sa loob ng ilang linggo, at nagiging malaki ang laki nito. Sa panahong ito, napakadaling kalimutan kahit na kung ano ang ibig sabihin nito o ang variable na iyon.

Oo, magagawa mo sa mga komento sa sitwasyong ito, ngunit hindi ba mas madaling tukuyin ang salitang Const?

Konklusyon

Ang mga variable ay isang mahalagang bahagi ng macro programming, na nagbibigay-daan sa iyong magsagawa ng mga kumplikadong operasyon, mula sa mga kalkulasyon hanggang sa pagpapaalam sa user tungkol sa ilang partikular na kaganapan o pagtukoy ng mga partikular na halaga sa mga cell ng isang spreadsheet.

Dapat gamitin ang mga constant kung siguradong alam ng developer na hindi magbabago ang mga nilalaman ng mga container na ito sa hinaharap. Inirerekomenda na huwag gumamit ng mga variable sa halip, dahil posibleng hindi sinasadyang magkamali.

Mag-iwan ng Sagot