Kala duwanaanshiyaha iyo joogtaynta VBA

Gudaha VBA, sida luqadaha kale ee barnaamijyada, doorsoomayaasha iyo joogtaynta ayaa loo isticmaalaa in lagu kaydiyo qiyam kasta. Sida magacaba ka muuqata, doorsoomayaashu way isbedeli karaan, halka ay joogtada ahi kaydiyaan qiimayaal go'an.

Tusaale ahaan, joogto ah Pi waxay kaydisaa qiimaha 3,14159265… Nambarka "Pi" ma beddeli doono inta lagu jiro fulinta barnaamijka, laakiin weli way ku habboon tahay in la kaydiyo qiimahaas oo kale si joogto ah.

Isla markaa, waxaan isticmaali karnaa doorsoomaha sVAT_Qiimaha si loo kaydiyo qiimaha VAT ee alaabta la soo iibsaday. Qiimaha isbedbeddelaya sVAT_Qiimaha way kala duwanaan kartaa iyadoo ku xidhan alaabta la iibsaday.

Noocyada Xogta

Dhammaan doorsoomayaasha iyo joogtaynta waa nooc xog gaar ah. Jadwalka hoose waxa uu taxayaa noocyada xogta ee loo isticmaalo VBA sifada iyo kala duwanaanshaha qiimayaasha suurtagalka ah:

Nooca xogta CabbirkaDescriptionHeerarka qiyamka
Byte1 baararkaTigidhada togan; inta badan loo isticmaalo xogta binaryka 0 in 255
Boolean2 baararkaWaxay noqon kartaa run ama beenRun ama Been
Integer2 baararkaTirooyinka oo dhan (ma jiro qayb jajab ah)laga bilaabo -32 ilaa +768
Long4 baararkaTigidhada waaweyn (aan lahayn qayb jajab ah)от -2 147 483 648 до +2 147 483 647
hal4 baararkaNambarka dhibicda sabbaynaya ee saxda ahlaga bilaabo -3.4e38 ilaa +3.4e38
Double8 baararkanambarka dhibicda sabbaynaysa ee labanlaab ah oo sax ahlaga bilaabo -1.8e308 ilaa +1.8e308
lacagta8 baararkaNambarka barta sabbaynaysa, oo leh tiro go'an oo meelo tobanle ahот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
Taariikhda8 baararkaTaariikhda iyo waqtiga - Xogta nooca Taariikhda taariikhda waxaa matalaya nambar sabbeynaya. Qaybta isku dhafka ah ee lambarkan waxay muujinaysaa taariikhda, qaybta jajabkuna waxay muujinaysaa wakhtiga.laga bilaabo Janaayo 1, 100 ilaa Disembar 31, 9999
UJEEDDO4 baararkaTixraaca shaygaTixraac shay kasta
stringwuu beddelayaaDabeecadda dabeecadda. Nooca String wuxuu noqon karaa dherer go'an ama doorsooma. Inta badan loo isticmaalo dhererka doorsoomaDhererka go'an - ilaa qiyaastii 65 xaraf. Dhererka isbedbeddelaya - ilaa ku dhawaad ​​500 bilyan oo xaraf
duwanaanshowuu beddelayaaWaxaa ku jiri kara taariikh, sabeyn, ama xaraf xarfo. Noocaan waxaa loo adeegsadaa kiisaska aan horay loo ogeyn nooca xogta la gelin doono.Nambar - Labanlaab, xarig - Xarig

Sida cad, adigoo isticmaalaya shaxda kore oo aad doorato nooca xogta saxda ah, waxaad u isticmaali kartaa xusuusta dhaqaale ahaan (tusaale, dooro nooca xogta Integer halkii Long or hal halkii Double). Si kastaba ha noqotee, marka aad isticmaalayso noocyo badan oo xog is haysta, waxaad u baahan tahay inaad ka taxadirto in koodhkaagu aanu isku dayin inuu ku habboonaado qiimayaal waaweyn oo aan la qiyaasi karin.

Ku dhawaaqida Isbeddellada iyo Joogtada

Qoraalka Turjubaanka: Isagoo ka hadlaya doorsoomayaasha VBA, waxaa habboon in la xuso hal qodob oo aad muhiim u ah. Haddi aan ku dhawaaqno doorsoome laakin aynaan u saarin wax qiimo ah, ka dib waxa lagu bilaabay qiime aan caadi ahayn:

Xadhkaha qoraalka waxa lagu bilaabay xadhko madhan;

tirooyinka - qiimaha 0;

nooca doorsoomayaasha Boolean - Been;

Taariikhaha - Disembar 30, 1899.

Kahor intaan la isticmaalin doorsoome ama joogto ah, waa in lagu dhawaaqaa. Si tan loo sameeyo, ku dar khadadka fudud ee soo socda makro:

Dim Имя_Переменной As Тип_Данных

In xariiqda kore ee koodka Magaca isbeddela waa magaca doorsoomayaasha loo isticmaali doono koodka, iyo Xogta_Nooca waa mid ka mid ah noocyada xogta ee shaxda lagu siiyay wax yar ka hor maqaalkan. Tusaale ahaan:

Dim sVAT_Rate Sida Single Dim iyo Sida Iskudarka

Joogtada ayaa si isku mid ah loogu dhawaaqaa, laakiin marka lagu dhawaaqayo joogtada, qiimahooda waa in isla markiiba la tilmaamaa. Tusaale ahaan, sida tan:

Const iMaxCount = 5000 Const iMaxScore = 100

Looma baahna in lagu dhawaaqo doorsoomayaasha gudaha Excel. Sida caadiga ah, dhammaan doorsoomayaasha la geliyo laakiin aan lagu dhawaaqin ee Excel waxay yeelan doonaan nooca duwanaansho waxayna awoodi doonaan inay aqbalaan qiimaha tirooyinka iyo qoraalka labadaba.

Haddaba, barnaamij-sameeyaha waxa uu isticmaali karaa doorsoomaha cusub wakhti kasta (xitaa haddii aan la shaacin), Excel waxa uu ula dhaqmi doonaa doorsoome nooc ah. duwanaansho. Si kastaba ha ahaatee, waxaa jira dhowr sababood oo aan tan la samayn karin:

  1. Isticmaalka xusuusta iyo xawaaraha xisaabinta. Haddii aadan ku dhawaaqin doorsoome wata calaamad muujinaysa nooca xogta, ka dib default waxaa lagu dejin doonaa nooca duwanaansho. Nooca xogtani waxay isticmaashaa xusuusta ka badan noocyada kale ee xogta. Dhawr bytes dheeraad ah halkii doorsoomeba waxa laga yaabaa inaanay u ekaan wax badan, laakiin ficil ahaan, barnaamijyadu waxay yeelan karaan kumanaan doorsoomayaal (gaar ahaan marka la shaqaynayo arrays). Sidaa darteed, xusuusta dheeraadka ah ee ay isticmaalaan doorsoomayaasha sida duwanaansho, marka loo eego doorsoomayaasha nooca Integer or hal, waxay ku dari kartaa ilaa xad la taaban karo. Intaa waxaa dheer, hawlgallada leh doorsoomayaasha nooca duwanaansho waxaa loo fuliyaa si aad u tartiib tartiib ah marka loo eego doorsoomayaasha noocyada kale, siday u kala horreeyaan, kun dheeraad ah oo doorsoomayaal ah oo nooc ah duwanaansho waxay si weyn hoos ugu dhigi kartaa xisaabinta.
  2. Ka-hortagga af-xumada magacyada doorsooma. Haddii dhammaan doorsoomayaasha lagu dhawaaqo, markaas bayaanka VBA waxaa loo isticmaali karaa - Xulasho Cad (waxaan ka hadli doonaa gadaal) si loo aqoonsado dhammaan doorsoomayaasha aan la shaacin. Tani waxay meesha ka saaraysaa muuqaalka qaladka ee barnaamijka taasoo ka dhalatay magac doorsoome oo si khaldan u qoran. Tusaale ahaan, adigoo isticmaalaya doorsoome magaciisu yahay sVAT_Qiimaha, waxaad samayn kartaa far qorid oo, adoo u qoondayn kara qiimaha doorsoomahan, ku qor: "VATrate = 0,175". Waxaa la filayaa in hadda ka dib, doorsoomayaasha sVAT_Qiimaha waa in uu ka kooban yahay 0,175 - laakiin dabcan maaha. Haddii qaabka ku dhawaaqida qasabka ah ee dhammaan doorsoomayaasha la isticmaalay la kartiyeeyo, markaas isku-dubaridiyaha VBA wuxuu isla markiiba tilmaami doonaa qalad, maadaama aysan heli doonin doorsoomaha. VATrate ka mid ah kuwa lagu dhawaaqay.
  3. Muujinta qiyamka aan ku habboonayn nooca la sheegay doorsoome. Haddii aad ku dhawaaqdo doorsoome nooc gaar ah oo aad isku daydo inaad u dhiibto xog nooc kale ah, waxaad heli doontaa khalad, kaas oo, haddii aan la sixin, sababi kara in barnaamijku burburo. Jaleecada hore, tani waxay u ekaan kartaa sabab wanaagsan oo aan lagu dhawaaqin doorsoomayaasha, laakiin dhab ahaantii, ka hor intaanay soo bixin in mid ka mid ah doorsoomayaasha uu helay xog khaldan oo ay ahayd in la helo - si aad u fiican! Haddii kale, haddii barnaamijku sii socdo, natiijadu waxay noqon kartaa mid khaldan oo lama filaan ah, waxayna noqon doontaa mid aad u adag in la helo sababta khaladaadka. Waxa kale oo suurtogal ah in makrosku si guul leh loo fuliyo. Natiijo ahaan, khaladku wuxuu noqon doonaa mid aan la dareemin oo shaqadu waxay sii wadi doontaa xogta khaldan!

Marka tan la eego, waa suurad wacan in la ogaado nooca xogta khaldan oo la saxo khaladaadkaas sida ugu dhakhsaha badan ee suurtogalka ah. Sababahan dartood, waxaa lagugula talinayaa inaad ku dhawaaqdo dhammaan doorsoomayaasha marka aad qorayso makro VBA ah.

Xulasho Cad

Hawlwadeennada Xulasho Cad waxay keentaa in dhammaan doorsoomayaasha loo isticmaali doono koodhka VBA in lagu dhawaaqo, oo u calamo dhammaan doorsoomayaasha aan la shaacin inay yihiin khaladaad inta lagu guda jiro ururinta (ka hor intaysan bilaabmin code fulinta). Codsashada hawlwadeenkan ma aha mid adag - kaliya ku qor xariiqan xagga sare ee faylka VBA:

Option Explicit

Haddii aad rabto in aad mar walba geliso Xulasho Cad ilaa sare ee module kasta oo cusub VBA abuuray, tan si toos ah loo samayn karaa. Si tan loo sameeyo, waxaad u baahan tahay inaad awood u yeelatid ikhtiyaarka Waxay u baahan tahay Bayaanka Isbeddelka ah ee goobaha tafatirka VBA.

Tan waxaa loo sameeyaa sidan:

  • Laga soo bilaabo liiska tafatirka Visual Basic, guji qalab > Options
  • Wadahadalka soo muuqda, fur tab Editor
  • Calaamadee sanduuqa Waxay u baahan tahay Bayaanka Isbeddelka ah iyo saxaafadda OK

Marka la furo, xadhigga Xulasho Cad si toos ah ayaa loo gelin doonaa bilowga cutub kasta oo cusub oo la sameeyay.

Baaxadda Isbeddellada iyo Joogtada

Doorsoome kasta oo lagu dhawaaqo ama joogto ah wuxuu leeyahay baaxadiisa xaddidan, taas oo ah, qayb xaddidan oo ka mid ah barnaamijka uu doorsoomuhu ku jiro. Baaxaddu waxay ku xidhan tahay halka lagu dhawaaqay doorsoomiyaha ama joogtada ah. Qaado, tusaale ahaan doorsoomiyaha sVAT_Qiimaha, kaas oo loo isticmaalo shaqada Wadarta_Kharashka. Jadwalka soo socdaa waxa uu ka hadlayaa laba doorasho oo doorsoomayaal ah sVAT_Qiimahalagu dhawaaqay laba boos oo kala duwan oo moduleka ah:

Ikhtiyaarka cad Dim sVAT_Rate Sida Hal hawl Wadarta_Qiimaha() Sida labanlaab ah ...
Haddii doorsoomuhu sVAT_Qiimaha lagu dhawaaqay bilowga hore ee moduleka, ka dibna baaxadda doorsoomuhu wuxuu noqon doonaa moduleka oo dhan (ie doorsoomiyaha sVAT_Qiimaha waxaa aqoonsan doona dhammaan hababka ku jira cutubkan).

Sidaa darteed, haddii ay ku jirto shaqada Wadarta_Kharashka isbeddel sVAT_Qiimaha waxaa loo qoondeyn doonaa xoogaa qiimo ah, ka dib shaqada xigta ee lagu fuliyay isla cutubka ayaa isticmaali doona doorsoomiyaha sVAT_Qiimaha oo la macno ah.

Si kastaba ha ahaatee, haddii qaar ka mid ah hawlaha ku yaala module kale la yiraahdo, ka dibna waxaa loogu talagalay doorsoomaha sVAT_Qiimaha lama ogaan doono.

Ikhtiyaarka Dhabta ah ee Shaqada Wadarta_Kharashka
Haddii doorsoomuhu sVAT_Qiimaha lagu dhawaaqay bilowga shaqada Wadarta_Kharashka, ka dibna baaxaddiisu waxay ku koobnaan doontaa oo kaliya shaqadan (ie gudaha shaqada Wadarta_Kharashka, waxaad isticmaali kartaa doorsoomaha sVAT_Qiimaha, laakiin dibadda maaha).

Markaad isku dayeyso inaad isticmaasho sVAT_Qiimaha Nidaam kale, isku-duwaha VBA-da ayaa soo sheegi doona khalad sababtoo ah doorsoomahan laguma dhawaaqin meel ka baxsan shaqada Wadarta_Kharashka (waa haddii hawlwadeenka la isticmaalo Xulasho Cad).

Tusaalaha kor ku xusan, doorsoomuhu waxa lagu caddeeyey heerka moduleka oo wata ereyga muhiimka ah Dim. Si kastaba ha ahaatee, waxaa laga yaabaa inay lagama maarmaan noqoto in doorsoomayaasha lagu dhawaaqay lagu isticmaali karo qaybo kale. Xaaladahan oo kale, in lagu dhawaaqo doorsoom halkii erayga muhiimka ah Dim keyword waa in la isticmaalo Dadweynaha.

Jid ahaan, si loogu dhawaaqo doorsoome heerka moduleka, halkii erayga muhiimka ah Dim keyword waxaa loo isticmaali karaa Private, kaas oo tilmaamaya in doorsoomahan loogu talagalay in lagu isticmaalo oo keliya qaybta hadda jirta.

Waxa kale oo aad isticmaali kartaa ereyada muhiimka ah si aad u caddeyso joogtada. Dadweynaha и Private, laakiin maaha halkii erayga muhiimka ah Const, oo ay la socoto.

Tusaalooyinka soo socdaa waxay muujinayaan isticmaalka ereyada muhiimka ah Dadweynaha и Private lagu dabaqay doorsoomayaasha iyo joogtada.

Ikhtiyaarka Sicirka Dadweynaha ee SVAT_Qiime Sida Kelida Dadweynaha ee iMax_Count = 5000 ...    
Tusaalahan, ereyga muhiimka ah Dadweynaha loo isticmaalo in lagu dhawaaqo doorsoome sVAT_Qiimaha iyo joogtaynta iMax_Count. Baaxadda walxaha lagu sheegay habkan ayaa noqon doona dhammaan mashruuca hadda socda.

Taas macnaheedu waa sVAT_Qiimaha и iMax_Count waxaa laga heli karaa nooc kasta oo mashruuc ah.

Ikhtiyaarka sVAT_Qiimaha Gaarka ah ee Gaarka ah Sida Keli ah Const iMax_Count = 5000 ...    
Tusaalahan, si loogu dhawaaqo doorsoome sVAT_Qiimaha iyo joogtaynta iMax_Count keyword la isticmaalo Private. Baaxadda walxahan waa moduleka hadda jira.

Taas macnaheedu waa sVAT_Qiimaha и iMax_Count waxaa laga heli doonaa dhammaan hababka moduleka hadda, laakiin ma heli doono habraacyada qaybaha kale.

Leave a Reply