Հասկանալով փոփոխականները և հաստատունները Excel մակրոներում

Այս հոդվածում դուք կսովորեք, թե ինչ հաստատուններ և փոփոխականներ կան մակրոներում, որտեղ դրանք կարող են օգտագործվել և որն է հիմնական տարբերությունը տվյալների տարբեր տեսակների միջև: Նաև կբացահայտվի, թե ինչու են անհրաժեշտ հաստատունները, եթե դուք պարզապես կարող եք գրել փոփոխական և երբեք չփոխել այն:

Ինչպես ծրագրավորման այլ լեզուները, տվյալները կարող են պահպանվել փոփոխականների կամ հաստատունների մեջ (որոնք երկուսն էլ հաճախ կոչվում են տվյալների կոնտեյներներ)։ Սա է այս հասկացությունների հիմնական տարբերությունը: Առաջինը կարող է փոխվել՝ կախված նրանից, թե ինչ է տեղի ունենում ծրագրում: Իր հերթին հաստատունները սահմանվում են մեկ անգամ և չեն փոխում իրենց արժեքը:

Կոնստանտները կարող են օգտակար լինել, եթե ձեզ անհրաժեշտ է մի քանի անգամ օգտագործել նույն մեծ արժեքը: Թիվը պատճենելու փոխարեն կարող եք պարզապես գրել հաստատունի անունը։ Օրինակ, դուք կարող եք օգտագործել «Pi» հաստատունը Pi-ն պահելու համար, որը հաստատուն արժեք է: Այն շատ մեծ է, և ամեն անգամ բավականին դժվար է այն գրել կամ որոնել ու պատճենել։ Եվ այսպես, բավական է գրել երկու նիշ, և միջավայրն ավտոմատ կերպով օգտագործում է ցանկալի թիվը։

Excel-ի օգտատերը պետք է հայտարարի փոփոխականներ, եթե նա պետք է ժամանակ առ ժամանակ փոխի դրանցում պահվող արժեքը: Օրինակ, դուք կարող եք սահմանել փոփոխական, որը կոչվում է sVAT_Rate, որը կպահի ապրանքի ընթացիկ ԱԱՀ դրույքաչափը: Եթե ​​այն փոխվի, կարող եք արագ ուղղել այն: Սա հատկապես օգտակար է նրանց համար, ովքեր բիզնես են անում Միացյալ Նահանգներում, որտեղ որոշ ապրանքներ կարող են ընդհանրապես ԱԱՀ-ի ենթակա չլինել (և այս հարկը նույնպես տարբերվում է նահանգից նահանգ):

Տվյալների տեսակները

Յուրաքանչյուր տվյալների կոնտեյներ կարող է լինել մի քանի տեսակներից մեկը: Ահա աղյուսակ, որը նկարագրում է մշակված տեղեկատվության ստանդարտ տեսակները: Դրանք շատ են, և սկզբում սկսնակին կարող է թվալ, որ նրանք կրկնում են միմյանց: Բայց սա պատրանքային զգացողություն է։ Կարդացեք՝ իմանալու համար, թե ինչու է այդքան կարևոր տվյալների ճիշտ տեսակը նշելը:

Խորհուրդ չի տրվում օգտագործել տվյալների տեսակ, որն ավելի շատ տեղ է զբաղեցնում հիշողության մեջ փոքր թվերի համար: Օրինակ, համար 1-ի համար բավական է օգտագործել Byte տեսակը։ Սա դրական ազդեցություն կունենա գործարկվող մոդուլի աշխատանքի վրա, հատկապես թույլ համակարգիչների վրա: Բայց այստեղ կարևոր է շատ հեռու չգնալ։ Եթե ​​դուք օգտագործում եք տվյալների տեսակ, որը չափազանց կոմպակտ է, ապա դրա մեջ կարող է չտեղավորվել չափազանց մեծ արժեքը:

Հաստատությունների և փոփոխականների հայտարարում

Տվյալների կոնտեյների օգտագործումն առանց նախապես այն հայտարարելու, կտրականապես չի խրախուսվում: Հետո կարող են առաջանալ մի շարք խնդիրներ, որոնցից խուսափելու համար անհրաժեշտ է գրել մի քանի փոքր տող կոդ՝ փոփոխականների կամ հաստատունների թվարկումով։

Փոփոխական հայտարարելու համար օգտագործվում է Dim հայտարարությունը: Օրինակ, այսպես.

Dim Variable_Name որպես ամբողջ թիվ

Variable_Name-ը փոփոխականի անունն է: Հաջորդը գրվում է As օպերատորը՝ նշելով տվյալների տեսակը։ «Variable_Name» և «Integer» տողերի փոխարեն կարող եք տեղադրել ձեր սեփական անունը և տվյալների տեսակը:

Կոնստանտները նույնպես կարող են հայտարարվել, բայց նախ պետք է նշեք դրանց արժեքը: Տարբերակներից մեկը հետևյալն է.

Const iMaxCount = 5000

Հանուն արդարության պետք է նշել, որ որոշ դեպքերում դուք կարող եք անել առանց փոփոխական հայտարարելու, բայց այս դեպքում նրանց ավտոմատ կերպով վերագրվելու է Variant տեսակը: Այնուամենայնիվ, դա խորհուրդ չի տրվում հետևյալ պատճառներով.

  1. Տարբերակը շատ ավելի դանդաղ է մշակվում, և եթե այդպիսի փոփոխականները շատ են, թույլ համակարգիչների վրա տեղեկատվության մշակումը կարող է զգալիորեն դանդաղեցնել: Թվում է, թե այդ վայրկյանները կորոշե՞ն։ Բայց եթե դուք պետք է գրեք մեծ թվով կոդ տողեր, այնուհետև այն գործարկեք թույլ համակարգիչների վրա (որոնք դեռ վաճառվում են, հաշվի առնելով, որ ժամանակակից գրասենյակային փաթեթները պահանջում են շատ RAM), կարող եք ամբողջովին դադարեցնել աշխատանքը: Լինում են դեպքեր, երբ մակրոների վատ մտածված գրելը հանգեցրել է խելացի գրքերի սառեցմանը, որոնք ունեն փոքր քանակությամբ RAM և նախատեսված չեն բարդ առաջադրանքներ կատարելու համար։ 
  2. Անունների սխալ տպագրությունը թույլատրվում է, ինչը կարելի է կանխել՝ օգտագործելով Option Explicit հայտարարությունը, որը թույլ է տալիս գտնել չհայտարարված փոփոխական, եթե այն գտնվի: Սա հեշտ ճանապարհ է սխալները հայտնաբերելու համար, քանի որ ամենափոքր տառասխալը հանգեցնում է նրան, որ թարգմանիչը չի կարողանում նույնականացնել փոփոխականը: Եվ եթե միացնեք փոփոխականի հայտարարագրման ռեժիմը, թարգմանիչը պարզապես թույլ չի տա ձեզ գործարկել մակրո, եթե գտնվեն տվյալների պարունակություններ, որոնք չեն հայտարարվել մոդուլի հենց սկզբում:
  3. Խուսափեք տվյալների տեսակին չհամապատասխանող փոփոխական արժեքների պատճառով առաջացած սխալներից: Սովորաբար, ամբողջ թվով փոփոխականին տեքստային արժեք վերագրելը սխալ կառաջացնի: Այո, մի կողմից, ընդհանուր տիպը նշանակվում է առանց հայտարարագրի, բայց եթե դրանք նախապես հայտարարված են, ապա պատահական սխալներից կարելի է խուսափել:

Ուստի, չնայած ամեն ինչին, խստորեն խորհուրդ է տրվում հայտարարել բոլոր փոփոխականները Excel մակրոներում:

Փոփոխականներ հայտարարելիս պետք է հիշել ևս մեկ բան. Հնարավոր է փոփոխականին որևէ արժեք չվերագրել այն հայտարարելիս, բայց այս դեպքում այն ​​ձեռք է բերում լռելյայն արժեք: Օրինակ:

  1. Տողերը դատարկ են:
  2. Թվերը ստանում են 0 արժեքը:
  3. Բուլյան տիպի փոփոխականներն ի սկզբանե համարվում են կեղծ:
  4. Լռելյայն ամսաթիվը 30 թվականի դեկտեմբերի 1899-ն է։

Օրինակ, ձեզ հարկավոր չէ 0 արժեքը վերագրել ամբողջ թվով փոփոխականին, եթե նախկինում որևէ արժեք նշված չէ: Նա արդեն պարունակում է այս համարը:

Տարբերակ բացահայտ հայտարարություն

Այս հայտարարությունը թույլ է տալիս հայտարարել բոլոր այն փոփոխականները, որոնք օգտագործվում են VBA կոդում և որոշել չհայտարարված կոնտեյների առկայությունը նախքան կոդը գործարկելը: Այս հնարավորությունն օգտագործելու համար պարզապես գրեք Option Explicit կոդի տող մակրո կոդի հենց վերևում:

Եթե ​​Ձեզ անհրաժեշտ է ամեն անգամ ներառել այս հայտարարությունը ձեր ծածկագրում, կարող եք դա անել՝ օգտագործելով VBA խմբագրիչի հատուկ կարգավորումը: Այս տարբերակը միացնելու համար դուք պետք է.

  1. Գնացեք զարգացման միջավայր ճանապարհի երկայնքով – Գործիքներ > Ընտրանքներ:
  2. Դրանից հետո բացվող պատուհանում բացեք Խմբագիր ներդիրը:
  3. Եվ վերջապես, նշեք «Պահանջվում է փոփոխական հայտարարագիր» կետի կողքին գտնվող վանդակը:

Այս քայլերն ավարտելուց հետո սեղմեք «OK» կոճակը: 

Վերջ, հիմա յուրաքանչյուր նոր մակրո գրելիս այս տողը ավտոմատ կերպով կտեղադրվի կոդի վերևում։

հաստատունների և փոփոխականների շրջանակը

Յուրաքանչյուր փոփոխական կամ հաստատուն ունի միայն սահմանափակ շրջանակ: Դա կախված է նրանից, թե որտեղ ես դա հայտարարում:

Ենթադրենք՝ ունենք ֆունկցիա Ընդհանուր արժեքը(), և այն օգտագործում է փոփոխականը sVAT_Rate. Կախված մոդուլի դիրքից, այն կունենա այլ շրջանակ.

Option Explicit- ը

Dim sVAT_Rate As Single

Գործառույթ Total_Cost() որպես կրկնակի

.

.

.

End գործառույթը

Եթե ​​փոփոխականը հայտարարված է հենց մոդուլի վերևում, այն տարածվում է ամբողջ մոդուլի վրա: Այսինքն՝ այն կարելի է կարդալ յուրաքանչյուր ընթացակարգով։

Ավելին, եթե ընթացակարգերից մեկը փոխել է փոփոխականի արժեքը, ապա հաջորդը նույնպես կկարդա այս ուղղված արժեքը։ Բայց մյուս մոդուլներում այս փոփոխականը դեռ չի կարդացվի:

Option Explicit- ը

Գործառույթ Total_Cost() որպես կրկնակի

Dim sVAT_Rate As Single

   .

   .

   .

End գործառույթը

Այս դեպքում փոփոխականը հայտարարվում է ընթացակարգի ներսում, և թարգմանիչը սխալ կթողնի, եթե այն օգտագործվի այլ ընթացակարգում:

Եթե ​​ցանկանում եք, որ փոփոխականը կարդացվի այլ մոդուլների կողմից, դուք պետք է օգտագործեք «Հանրային» բանալի բառը «Dim» բանալի բառի փոխարեն: Նմանապես, դուք կարող եք սահմանափակել փոփոխականի շրջանակը միայն ընթացիկ մոդուլով, օգտագործելով Public հայտարարությունը, որը գրված է Dim բառի փոխարեն:

Դուք կարող եք սահմանել հաստատունների շրջանակը նույն ձևով, բայց բանալի բառն այստեղ գրված է Const օպերատորի հետ միասին:

Ահա աղյուսակը լավ օրինակով, թե ինչպես է այն աշխատում հաստատունների և փոփոխականների հետ:

Option Explicit- ը

Հանրային sVAT_Rate As Single

Public Const iMax_Count = 5000

Այս օրինակում կարող եք տեսնել, թե ինչպես է հանրային հիմնաբառը օգտագործվում փոփոխական հայտարարելու համար, և ինչ է անհրաժեշտ գրել Visual Basic խմբագրիչում՝ հանրային հաստատուն հայտարարելու համար։ Այս արժեքային բեռնարկղերի շրջանակը վերաբերում է բոլոր մոդուլներին:
Option Explicit- ը

Մասնավոր sVAT_Rate As Single

Մասնավոր Const iMax_Count = 5000

Այստեղ փոփոխականները և հաստատունները հայտարարվում են՝ օգտագործելով Անձնական բանալի բառը: Սա նշանակում է, որ դրանք կարելի է տեսնել միայն ընթացիկ մոդուլի ներսում, իսկ այլ մոդուլների ընթացակարգերը չեն կարող դրանք օգտագործել:

Ինչու են անհրաժեշտ հաստատուններ և փոփոխականներ

Կայունների և փոփոխականների օգտագործումը թույլ է տալիս բարձրացնել կոդի հասկանալիության աստիճանը։ Եվ եթե ընդհանուր առմամբ սկսնակները հարցեր չունեն, թե ինչու են անհրաժեշտ փոփոխականները, ապա հաստատունների անհրաժեշտության հետ կապված բազմաթիվ երկիմաստություններ կան: Եվ այս հարցը, առաջին հայացքից, միանգամայն տրամաբանական է թվում։ Ի վերջո, դուք կարող եք մեկ անգամ հայտարարել փոփոխական և այլևս երբեք չփոխել այն:

Պատասխանը պարզվում է, որ ինչ-որ տեղ նույն հարթության մեջ է, ինչ վերաբերում է տվյալների տեսակների օգտագործմանը, որոնք մեծ տեղ են զբաղեցնում հիշողության մեջ: Եթե ​​գործ ունենք մեծ թվով փոփոխականների հետ, կարող ենք պատահաբար փոխել գոյություն ունեցող կոնտեյները: Եթե ​​օգտագործողը սահմանում է, որ որոշակի արժեք երբեք չի փոխվի, ապա շրջակա միջավայրը ավտոմատ կերպով կվերահսկի դա:

Սա հատկապես կարևոր է, երբ մակրոն գրված է մի քանի ծրագրավորողների կողմից: Կարելի է իմանալ, որ որոշ փոփոխական չպետք է փոխվի: Իսկ մյուսը՝ ոչ։ Եթե ​​նշեք Const օպերատորը, մեկ այլ մշակող կիմանա, որ այս արժեքը չի փոխվում:

Կամ, եթե կա մեկ անունով հաստատուն, և փոփոխականն ունի այլ, բայց նման անուն: Մշակողը կարող է պարզապես շփոթել նրանց: Օրինակ, մի փոփոխական, որը փոփոխության կարիք չունի, կոչվում է Variable11, իսկ մյուսը, որը հնարավոր է խմբագրել, կոչվում է Variable1: Մարդը կարող է ավտոմատ կերպով կոդ գրելիս պատահաբար բաց թողնել լրացուցիչ միավորը և չնկատել այն։ Արդյունքում արժեքների կոնտեյները կփոխվի, որին չպետք է դիպչել:

Կամ մշակողն ինքը կարող է մոռանալ, թե որ փոփոխականներին կարող է դիպչել, որին՝ ոչ։ Հաճախ դա տեղի է ունենում, երբ կոդը գրվում է մի քանի շաբաթ, և դրա չափը մեծանում է: Այս ընթացքում շատ հեշտ է մոռանալ անգամ, թե ինչ է նշանակում այս կամ այն ​​փոփոխականը։

Այո, այս իրավիճակում կարելի է մեկնաբանություններ անել, բայց ավելի հեշտ չէ՞ նշել Const բառը:

Եզրակացություններ

Փոփոխականները մակրոծրագրավորման էական բաղադրիչն են, որոնք թույլ են տալիս կատարել բարդ գործողություններ՝ սկսած հաշվարկներից մինչև որոշակի իրադարձությունների մասին օգտագործողին տեղեկացնելը կամ աղյուսակի բջիջներում հատուկ արժեքներ նշելը:

Կոնստանտները պետք է օգտագործվեն, եթե մշակողը հաստատ գիտի, որ այդ տարաների պարունակությունը ապագայում չի փոխվի: Փոխարենը խորհուրդ է տրվում չօգտագործել փոփոխականներ, քանի որ հնարավոր է պատահաբար սխալվել։

Թողնել գրառում