Konprann varyab ak konstan nan Macro Excel

Nan atik sa a, ou pral aprann ki sa konstan ak varyab yo nan makro, ki kote yo ka itilize, ak ki sa ki diferans prensipal ant diferan kalite done. Li pral tou devwale poukisa konstan yo bezwen, si ou ka jis ekri yon varyab epi pa janm chanje li.

Menm jan ak lòt langaj pwogramasyon, done yo ka estoke nan varyab oswa konstan (tou de yo souvan refere yo kòm resipyan done). Sa a se diferans prensipal la ant konsèp sa yo. Ansyen an ka chanje selon sa k ap pase nan pwogram nan. Nan vire, konstan yo mete yon fwa epi yo pa chanje valè yo.

Konstan yo ka itil si ou bezwen sèvi ak menm gwo valè a plizyè fwa. Olye pou w kopye nimewo a, ou ka senpleman ekri non konstan an. Pou egzanp, ou ka itilize konstan "Pi" nan magazen Pi, ki se yon valè konstan. Li se gwo anpil, epi chak fwa li se byen difisil yo ekri li oswa rechèch ak kopye li. Se konsa, li se ase yo ekri de karaktè, ak anviwònman an otomatikman sèvi ak nimewo a vle.

Itilizatè a Excel bezwen deklare varyab si li bezwen chanje valè ki estoke nan yo de tan zan tan. Pou egzanp, ou ka mete yon varyab ki rele sVAT_Rate, ki pral estoke pousantaj VAT aktyèl la pou pwodwi a. Si li chanje, ou ka byen vit korije li. Sa a itil espesyalman pou moun ki fè biznis nan peyi Etazini, kote kèk machandiz pa ka sijè a VAT ditou (ak taks sa a tou diferan de eta a).

Kalite Done

Chak veso done ka youn nan plizyè kalite. Isit la se yon tablo ki dekri kalite estanda enfòmasyon trete. Gen anpil nan yo, epi li ka sanble nan yon debutan okòmansman ke yo repete youn ak lòt. Men, sa a se yon santiman ilizyon. Li kontinye pou aprann poukisa presize kalite done ki kòrèk la tèlman enpòtan.

Li pa rekòmande pou itilize yon kalite done ki pran plis espas nan memwa pou ti nimewo. Pou egzanp, pou nimewo a 1, li se ase yo sèvi ak kalite a Byte. Sa a pral gen yon efè pozitif sou pèfòmans nan modil la ègzèkutabl, espesyalman sou òdinatè fèb. Men, li enpòtan pou pa ale twò lwen isit la. Si w sèvi ak yon kalite done ki twò kontra, yon valè ki twò gwo ka pa anfòm ladan l.

Deklarasyon konstan ak varyab

Sèvi ak yon veso done san yo pa premye deklare li fòtman dekouraje. Lè sa a, yon kantite pwoblèm ka leve, pou fè pou evite ki li nesesè yo ekri kèk ti liy nan kòd ak enimerasyon nan varyab oswa konstan.

Pou deklare yon varyab, yo itilize deklarasyon Dim. Pou egzanp, tankou sa a:

Dim Variable_Name kòm nonb nonb antye

Variable_Name se non varyab la. Apre sa, kòm operatè a ekri, ki endike kalite done yo. Olye de fisèl "Variable_Name" ak "Integer", ou ka mete pwòp non ou ak kalite done.

Konstan yo ka deklare tou, men ou dwe premye presize valè yo. Youn nan opsyon yo se:

Const iMaxCount = 5000

Nan jistis, nan kèk ka ou ka fè san yo pa deklare yon varyab, men nan ka sa a yo pral otomatikman plase nan kalite Variant. Sepandan, sa a pa rekòmande pou rezon sa yo:

  1. Variant trete pi dousman, epi si gen anpil varyab sa yo, pwosesis enfòmasyon yo ka siyifikativman ralanti sou òdinatè fèb. Li ta sanble ke segonn sa yo pral deside? Men, si ou gen ekri yon gwo kantite liy nan kòd, ak Lè sa a tou kouri li sou òdinatè fèb (ki toujou vann, bay swit biwo modèn mande pou anpil RAM), ou ka konplètman sispann travay la. Gen ka lè ekri makro mal ansent te mennen nan konjelasyon nan smartbooks ki gen yon ti kantite RAM epi yo pa fèt pou fè travay konplèks. 
  2. Yo gen dwa fè erè nan non yo, ki ka anpeche lè w itilize deklarasyon Opsyon Eksplis la, ki pèmèt ou jwenn yon varyab ki pa deklare, si yo jwenn youn. Sa a se yon fason fasil pou detekte erè, piske ti typo a lakòz entèprèt la pa kapab idantifye varyab la. Men, si ou vire sou mòd nan deklarasyon varyab, entèprèt la pral tou senpleman pa pèmèt ou kouri makro a si yo jwenn resipyan done ki pa te deklare nan kòmansman an anpil nan modil la.
  3. Evite erè ki te koze pa valè varyab ki pa matche kalite done yo. Nòmalman, bay yon valè tèks nan yon varyab nonb antye relatif pral voye yon erè. Wi, sou yon bò, yo bay yon kalite jenerik san yo pa yon deklarasyon, men si yo deklare yo davans, Lè sa a, erè o aza ka evite.

Se poutèt sa, malgre tout bagay, li trè rekòmande pou deklare tout varyab nan makro Excel.

Gen yon lòt bagay pou w sonje lè w ap deklare varyab yo. Li posib pou pa bay okenn valè nan yon varyab lè yo deklare li, men nan ka sa a li pran yon valè default. Pa egzanp:

  1. Liy yo fè vid.
  2. Nimewo yo pran valè 0.
  3. Varyab nan kalite Boolean yo okòmansman konsidere kòm fo.
  4. Dat defo a se 30 desanm 1899.

Pou egzanp, ou pa bezwen bay valè 0 a nan yon varyab nonb antye relatif si pa gen okenn valè deja espesifye. Li deja genyen nimewo sa a.

Opsyon Deklarasyon Eksplis

Deklarasyon sa a pèmèt ou deklare tout varyab yo itilize nan kòd VBA a epi detèmine prezans nenpòt resipyan ki pa deklare anvan kòd la kouri. Pou itilize karakteristik sa a, tou senpleman ekri yon liy nan kòd Opsyon Eksplis nan tèt la nan kòd la macro.

Si ou bezwen mete deklarasyon sa a nan kòd ou chak fwa, ou ka fè sa lè l sèvi avèk yon anviwònman espesyal nan editè a VBA. Pou pèmèt opsyon sa a, ou dwe:

  1. Ale nan anviwònman devlopman sou chemen an - Zouti> Opsyon.
  2. Nan fenèt la ki louvri apre sa a, louvri tab la Editè.
  3. Epi finalman, tcheke ti bwat ki akote atik Mande pou Deklarasyon Varyab.

Lè w fin fè etap sa yo, klike sou bouton an "OK". 

Sa a se li, kounye a lè w ap ekri chak nouvo makro, liy sa a pral antre nan tèt kòd la otomatikman.

Dimansyon konstan ak varyab

Chak varyab oswa konstan gen sèlman yon dimansyon limite. Sa depann de kote ou deklare li.

Sipoze nou gen yon fonksyon Pri_total(), epi li itilize varyab la sVAT_Rate. Tou depan de pozisyon nan modil la, li pral gen yon dimansyon diferan:

Opsyon Eksplis

Dim sVAT_Rate Kòm Selibatè

Fonksyon Total_Cost() Kòm doub

.

.

.

Fonksyon fen

Si yo deklare yon varyab nan tèt yon modil li menm, li pwopaje nan tout modil sa a. Sa vle di, li ka li pa chak pwosedi.

Anplis, si youn nan pwosedi yo chanje valè varyab la, Lè sa a, pwochen an ap li tou valè korije sa a. Men, nan lòt modil varyab sa a ap toujou pa ka li.

Opsyon Eksplis

Fonksyon Total_Cost() Kòm doub

Dim sVAT_Rate Kòm Selibatè

   .

   .

   .

Fonksyon fen

Nan ka sa a, varyab la deklare andedan pwosedi a, epi entèprèt la pral voye yon erè si li itilize nan yon lòt pwosedi.

Si w vle lòt modil li varyab la, ou dwe itilize mo kle Piblik la olye mo kle Dim. Menm jan an tou, ou ka limite dimansyon yon varyab a sèlman modil aktyèl la lè w itilize deklarasyon Piblik la, ki ekri olye pou mo Dim.

Ou ka mete sijè ki abòde lan konstan nan yon fason menm jan an, men mo kle a isit la ekri ansanm ak operatè a Const.

Isit la se yon tablo ki gen yon bon egzanp sou fason li travay ak konstan ak varyab.

Opsyon Eksplis

Piblik sVAT_Rate Kòm Selibatè

Piblik Const iMax_Count = 5000

Nan egzanp sa a, ou ka wè ki jan mo kle piblik la itilize pou deklare yon varyab, ak sa ou bezwen ekri nan editè Visual Basic pou deklare yon konstan piblik. Dimansyon kontenè valè sa yo aplike pou tout modil yo.
Opsyon Eksplis

Prive sVAT_Rate Kòm Selibatè

Prive Const iMax_Count = 5000

Isit la, varyab ak konstan yo deklare lè l sèvi avèk mo kle Prive a. Sa vle di ke yo ka sèlman wè nan modil aktyèl la, ak pwosedi nan lòt modil pa ka itilize yo.

Poukisa konstan ak varyab yo bezwen

Itilizasyon konstan ak varyab pèmèt ou ogmante degre nan konprann nan kòd la. Men, si débutan an jeneral pa gen kesyon sou poukisa varyab yo bezwen, Lè sa a, gen anpil anbigwite konsènan bezwen an pou konstan. Ak kesyon sa a sanble, nan premye gade, byen lojik. Apre yo tout, ou ka deklare yon varyab yon fwa epi pa janm chanje li ankò.

Repons lan vire soti nan yon kote nan plan an menm jan ak konsènan itilizasyon kalite done ki okipe yon gwo espas nan memwa. Si nou ap fè fas ak yon gwo kantite varyab, nou ka aksidantèlman chanje yon veso ki deja egziste. Si itilizatè a preskri ke yon valè sèten pa janm pral chanje, Lè sa a, anviwònman an pral otomatikman kontwole sa a.

Sa a se espesyalman enpòtan lè macro a ekri pa plizyè pwogramè. Yon moun ka konnen ke kèk varyab pa ta dwe chanje. Ak lòt la se pa. Si ou presize operatè a Const, yon lòt pwomotè pral konnen ke valè sa a pa chanje.

Oswa, si gen yon konstan ak yon non, ak varyab la gen yon non diferan, men menm jan an. Pwomotè a ka tou senpleman konfonn yo. Pou egzanp, yon varyab ki pa bezwen chanje yo rele Varyab11, ak yon lòt ki ka modifye yo rele Varyab1. Yon moun ka otomatikman, lè w ap ekri kòd, aksidantèlman sote yon inite siplemantè epi li pa remake li. Kòm yon rezilta, veso a pou valè yo pral chanje, ki pa ta dwe manyen.

Oswa pwomotè a li menm ka bliye ki varyab li ka manyen ak kilès li pa kapab. Sa a souvan rive lè kòd la ekri pou plizyè semèn, ak gwosè li vin gwo. Pandan tan sa a, li trè fasil bliye menm sa a oswa sa varyab vle di.

Wi, ou ka fè ak kòmantè nan sitiyasyon sa a, men li pa pi fasil yo presize mo Konst la?

Konklizyon

Varyab yo se yon eleman esansyèl nan pwogram macro, ki pèmèt ou fè operasyon konplèks, soti nan kalkil enfòme itilizatè a sou sèten evènman oswa espesifye valè espesifik nan selil yo nan yon calcul.

Konstan yo ta dwe itilize si pwomotè a konnen pou asire ke sa ki nan resipyan sa yo pa pral chanje nan lavni an. Li rekòmande pa sèvi ak varyab pito, paske li posib aksidantèlman fè yon erè.

Kite yon Reply