Kuelewa Vigezo na Mara kwa mara katika Excel Macros

Katika makala hii, utajifunza nini mara kwa mara na vigezo vilivyo kwenye macros, ambapo vinaweza kutumika, na ni tofauti gani kuu kati ya aina tofauti za data. Pia itafunuliwa kwa nini viunga vinahitajika, ikiwa unaweza kuandika tu kutofautisha na usibadilishe kamwe.

Kama lugha zingine za upangaji, data inaweza kuhifadhiwa katika vigeu au vibadilishi (vyote viwili pia hujulikana kama vyombo vya data). Hii ndio tofauti kuu kati ya dhana hizi. Ya kwanza inaweza kubadilika kulingana na kile kinachotokea katika programu. Kwa upande wake, mara kwa mara huwekwa mara moja na haibadilishi thamani yao.

Constants inaweza kuwa muhimu ikiwa unahitaji kutumia thamani sawa mara nyingi. Badala ya kunakili nambari, unaweza kuandika tu jina la mara kwa mara. Kwa mfano, unaweza kutumia "Pi" mara kwa mara ili kuhifadhi Pi, ambayo ni thamani ya mara kwa mara. Ni kubwa sana, na kila wakati ni ngumu kuiandika au kutafuta na kunakili. Na kwa hiyo, inatosha kuandika wahusika wawili, na mazingira hutumia moja kwa moja nambari inayotakiwa.

Mtumiaji wa Excel anahitaji kutangaza vigezo ikiwa anahitaji kubadilisha thamani iliyohifadhiwa ndani yao mara kwa mara. Kwa mfano, unaweza kuweka kigezo kiitwacho sVAT_Rate, ambacho kitahifadhi kiwango cha sasa cha VAT kwa bidhaa. Ikiwa itabadilika, unaweza kuirekebisha haraka. Hii ni muhimu hasa kwa wale wanaofanya biashara nchini Marekani, ambapo baadhi ya bidhaa huenda zisiwe chini ya VAT hata kidogo (na kodi hii pia inatofautiana kutoka jimbo hadi jimbo).

Aina za data

Kila chombo cha data kinaweza kuwa moja ya aina kadhaa. Hapa kuna jedwali linaloelezea aina za kawaida za habari iliyochakatwa. Kuna mengi yao, na inaweza kuonekana kwa anayeanza hapo awali kwamba wanarudia kila mmoja. Lakini hii ni hisia ya uwongo. Soma ili upate maelezo kwa nini kubainisha aina sahihi ya data ni muhimu sana.

Haipendekezi kutumia aina ya data ambayo inachukua nafasi zaidi katika kumbukumbu kwa nambari ndogo. Kwa mfano, kwa nambari ya 1, inatosha kutumia aina ya Byte. Hii itakuwa na athari nzuri juu ya utendaji wa moduli inayoweza kutekelezwa, hasa kwenye kompyuta dhaifu. Lakini ni muhimu sio kwenda mbali sana hapa. Ukitumia aina ya data iliyoshikana sana, thamani kubwa zaidi inaweza isitoshe ndani yake.

Kutangaza Mara kwa mara na Vigezo

Kutumia kontena ya data bila kutangaza kwanza ni tamaa sana. Kisha matatizo kadhaa yanaweza kutokea, ili kuepuka ambayo ni muhimu kuandika mistari ndogo ndogo ya kanuni na hesabu ya vigezo au mara kwa mara.

Ili kutangaza kutofautisha, taarifa ya Dim inatumiwa. Kwa mfano, kama hii:

Dim Variable_Name Kama Nambari kamili

Variable_Name ni jina la kutofautisha. Ifuatayo, Opereta ya As imeandikwa, ikionyesha aina ya data. Badala ya mifuatano ya "Variable_Name" na "Integer", unaweza kuingiza jina lako mwenyewe na aina ya data.

Constants pia inaweza kutangazwa, lakini lazima kwanza ueleze thamani yao. Moja ya chaguzi ni:

Const iMaxCount = 5000

Kwa haki, katika hali zingine unaweza kufanya bila kutangaza kutofautisha, lakini katika kesi hii watapewa kiotomati aina ya Tofauti. Walakini, hii haipendekezi kwa sababu zifuatazo:

  1. Lahaja inachakatwa polepole zaidi, na ikiwa kuna anuwai nyingi kama hizo, usindikaji wa habari unaweza kupunguzwa sana kwenye kompyuta dhaifu. Inaonekana kwamba sekunde hizo zitaamua? Lakini ikiwa unapaswa kuandika idadi kubwa ya mistari ya kanuni, na kisha pia kukimbia kwenye kompyuta dhaifu (ambazo bado zinauzwa, kutokana na kwamba vyumba vya kisasa vya ofisi vinahitaji RAM nyingi), unaweza kuacha kabisa kazi. Kuna matukio wakati uandishi mbaya wa macros ulisababisha kufungia kwa smartbooks ambazo zina kiasi kidogo cha RAM na hazijaundwa kufanya kazi ngumu. 
  2. Makosa katika majina yanaruhusiwa, ambayo yanaweza kuzuiwa kwa kutumia Taarifa ya Chaguo Wazi, ambayo inakuwezesha kupata tofauti isiyojulikana, ikiwa moja inapatikana. Hii ni njia rahisi ya kugundua makosa, kwa kuwa chapa kidogo zaidi husababisha mkalimani ashindwe kutambua kigezo. Na ikiwa utawasha hali ya kutofautisha ya tamko, mkalimani hatakuruhusu kuendesha jumla ikiwa vyombo vya data vitapatikana ambavyo havikutangazwa mwanzoni mwa moduli.
  3. Epuka hitilafu zinazosababishwa na thamani tofauti zisizolingana na aina ya data. Kwa kawaida, kukabidhi thamani ya maandishi kwa kigezo kamili kutatupa hitilafu. Ndiyo, kwa upande mmoja, aina ya generic inapewa bila tamko, lakini ikiwa inatangazwa mapema, basi makosa ya random yanaweza kuepukwa.

Kwa hiyo, licha ya kila kitu, inashauriwa sana kutangaza vigezo vyote katika macros ya Excel.

Kuna jambo moja zaidi la kukumbuka wakati wa kutangaza vigezo. Inawezekana kutogawa maadili yoyote kwa kutofautisha wakati wa kuitangaza, lakini katika kesi hii inapata dhamana ya msingi. Kwa mfano:

  1. Mistari hufanywa tupu.
  2. Nambari huchukua thamani 0.
  3. Vigezo vya aina ya Boolean hapo awali vinachukuliwa kuwa vya uwongo.
  4. Tarehe chaguo-msingi ni Desemba 30, 1899.

Kwa mfano, huhitaji kugawa thamani 0 kwa kigezo kamili ikiwa hakuna thamani iliyobainishwa hapo awali. Tayari ana nambari hii.

Chaguo Taarifa ya Wazi

Taarifa hii inakuruhusu kutangaza vigeu vyote vinavyotumika katika msimbo wa VBA na kubainisha kuwepo kwa kontena zozote ambazo hazijatangazwa kabla ya msimbo kuendeshwa. Ili kutumia kipengele hiki, andika tu safu ya msimbo wa Chaguo Wazi juu kabisa ya msimbo mkuu.

Ikiwa unahitaji kujumuisha taarifa hii katika msimbo wako kila wakati, unaweza kufanya hivyo kwa kutumia mpangilio maalum katika kihariri cha VBA. Ili kuwezesha chaguo hili, lazima:

  1. Nenda kwenye mazingira ya uendelezaji njiani - Vyombo > Chaguzi.
  2. Katika dirisha linalofungua baada ya hili, fungua kichupo cha Mhariri.
  3. Na hatimaye, chagua kisanduku karibu na kipengee cha Require Declaration.

Baada ya kukamilisha hatua hizi, bonyeza kitufe cha "Sawa". 

Hiyo ni, sasa wakati wa kuandika kila macro mpya, mstari huu utaingizwa juu ya msimbo moja kwa moja.

Upeo wa mara kwa mara na Vigezo

Kila kigeugeu au mara kwa mara kina upeo mdogo tu. Inategemea unatangaza wapi.

Tuseme tuna kipengele Jumla_Gharama(), na hutumia kutofautisha sVAT_Kiwango. Kulingana na nafasi katika moduli, itakuwa na wigo tofauti:

Chaguo Wazi

Punguza sVAT_Rate Kama Mtu Mmoja

Kazi Total_Cost() Kama Mbili

.

.

.

Mwisho Kazi

Ikiwa kigezo kitatangazwa juu ya moduli yenyewe, hueneza katika moduli hiyo yote. Hiyo ni, inaweza kusomwa kwa kila utaratibu.

Kwa kuongeza, ikiwa moja ya taratibu zilibadilisha thamani ya kutofautisha, basi inayofuata pia itasoma thamani hii iliyosahihishwa. Lakini katika moduli zingine utofauti huu bado hautasomwa.

Chaguo Wazi

Kazi Total_Cost() Kama Mbili

Punguza sVAT_Rate Kama Mtu Mmoja

   .

   .

   .

Mwisho Kazi

Katika kesi hii, kutofautiana kunatangazwa ndani ya utaratibu, na mkalimani atatupa kosa ikiwa inatumiwa kwa utaratibu mwingine.

Ikiwa ungependa kigezo kisomwe na moduli zingine, lazima utumie neno kuu la Umma badala ya neno kuu la Dim. Vile vile, unaweza kuweka kikomo cha upeo wa kutofautisha kwa moduli ya sasa tu kwa kutumia taarifa ya Umma, ambayo imeandikwa badala ya neno Dim.

Unaweza kuweka wigo wa viunga kwa njia sawa, lakini neno kuu hapa limeandikwa pamoja na opereta wa Const.

Hapa kuna jedwali lililo na mfano mzuri wa jinsi inavyofanya kazi na viunga na vigeuzo.

Chaguo Wazi

Umma sVAT_Rate Kama Mmoja

Utumiaji wa Umma iMax_Count = 5000

Katika mfano huu, unaweza kuona jinsi nenomsingi la Umma linatumika kutangaza kigezo, na unachohitaji kuandika katika kihariri cha Visual Basic ili kutangaza kutobadilika kwa umma. Upeo wa kontena hizi za thamani hutumika kwa moduli zote.
Chaguo Wazi

sVAT_Rate Binafsi Kama Mtu Mmoja

Binafsi Const iMax_Count = 5000

Hapa, viambajengo na vibadilishio vinatangazwa kwa kutumia neno kuu la Kibinafsi. Hii inamaanisha kuwa zinaweza kuonekana tu ndani ya moduli ya sasa, na taratibu katika moduli zingine haziwezi kuzitumia.

Kwa nini mara kwa mara na vigezo vinahitajika

Matumizi ya mara kwa mara na vigezo inakuwezesha kuongeza kiwango cha uelewa wa kanuni. Na ikiwa wanaoanza kwa ujumla hawana maswali juu ya kwa nini vijiti vinahitajika, basi kuna utata mwingi kuhusu hitaji la viboreshaji. Na swali hili linaonekana, kwa mtazamo wa kwanza, mantiki kabisa. Baada ya yote, unaweza kutangaza kutofautisha mara moja na usibadilishe tena.

Jibu linageuka kuwa mahali fulani kwenye ndege sawa na kuhusu matumizi ya aina za data ambazo zinachukua nafasi kubwa katika kumbukumbu. Ikiwa tunashughulika na idadi kubwa ya vigezo, tunaweza kubadilisha chombo kilichopo kwa bahati mbaya. Ikiwa mtumiaji anaagiza kwamba thamani fulani haitabadilika kamwe, basi mazingira yatadhibiti hii moja kwa moja.

Hii ni muhimu sana wakati macro imeandikwa na watengenezaji programu kadhaa. Mtu anaweza kujua kwamba baadhi ya kutofautiana haipaswi kubadilika. Na nyingine sio. Ukibainisha opereta wa Const, msanidi mwingine atajua kuwa thamani hii haibadilika.

Au, ikiwa kuna mara kwa mara na jina moja, na variable ina tofauti, lakini jina sawa. Msanidi programu anaweza kuwachanganya tu. Kwa mfano, kigezo kimoja ambacho hakihitaji kubadilishwa kinaitwa Variable11, na kingine kinachoweza kuhaririwa kinaitwa Variable1. Mtu anaweza kiatomati, wakati wa kuandika msimbo, kwa bahati mbaya kuruka kitengo cha ziada na asitambue. Kama matokeo, chombo cha maadili kitabadilishwa, ambacho haipaswi kuguswa.

Au msanidi mwenyewe anaweza kusahau ni vigeu gani anaweza kugusa na ambavyo haviwezi. Mara nyingi hii hutokea wakati msimbo umeandikwa kwa wiki kadhaa, na ukubwa wake unakuwa mkubwa. Wakati huu, ni rahisi sana kusahau hata nini hii au tofauti hiyo ina maana.

Ndiyo, unaweza kufanya na maoni katika hali hii, lakini si rahisi kutaja neno Const?

Hitimisho

Vigezo ni sehemu muhimu ya upangaji wa jumla, ambayo hukuruhusu kufanya shughuli ngumu, kutoka kwa mahesabu hadi kumjulisha mtumiaji kuhusu matukio fulani au kubainisha maadili maalum katika seli za lahajedwali.

Constants inapaswa kutumika ikiwa msanidi anajua kwa uhakika kuwa yaliyomo kwenye vyombo hivi hayatabadilika katika siku zijazo. Inashauriwa kutotumia vigezo badala yake, kwani inawezekana kufanya makosa kwa bahati mbaya.

Acha Reply