Variables sy constants amin'ny VBA

Ao amin'ny VBA, toy ny amin'ny fiteny fandaharana hafa rehetra, ny variables sy constants dia ampiasaina hitahiry ny soatoavina. Araka ny hevitr'ilay anarana dia mety miova ny variables, raha mitahiry sanda raikitra kosa ny constants.

Ohatra, tsy miova Pi mitahiry ny sanda 3,14159265… Ny isa "Pi" dia tsy hiova mandritra ny fanatanterahana ny programa, fa mbola mety kokoa ny mitahiry sanda toy izany ho tsy miova.

Amin'izay fotoana izay ihany koa dia afaka mampiasa ny variable isika sVAT_Rate mba hitahiry ny taham-pahefan'ny entana novidina. Sanda miovaova sVAT_Rate mety miovaova arakaraka ny vokatra novidina.

Karazan-tahiry

Ny variables sy constants rehetra dia karazana data manokana. Ny tabilao etsy ambany dia mitanisa ireo karazana angona ampiasaina amin'ny VBA miaraka amin'ny famaritana sy ny sanda azo atao:

Karazan-tahiry SizeDescriptionLanjan'ny sanda
Byte1 baotyIntegers tsara; matetika ampiasaina amin'ny angona binaryfrom 0 ho 255
boolean2 baotyMety ho marina na disoMarina na diso
Integer2 baotyIsa manontolo (tsy misy ampahany)manomboka amin'ny -32 ka hatramin'ny +768
Long4 baotyInteger lehibe (tsy misy ampahany)от -2 147 483 648 до +2 147 483 647
mpitovo4 baotylaharana mitsingevana mazava tsara tokanamanomboka amin'ny -3.4e38 ka hatramin'ny +3.4e38
Double8 baotylaharana mitsingevana mazava tsara indroamanomboka amin'ny -1.8e308 ka hatramin'ny +1.8e308
Sandam-bola8 baotyLaharan'ny teboka mitsingevana, miaraka amin'ny isa raikitra amin'ny toerana desimalот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
Date8 baotyDaty sy ora - Data karazana Date dia aseho amin'ny isa mitsingevana. Ny ampahany integer amin'ity isa ity dia maneho ny daty, ary ny ampahany amin'ny ampahany dia maneho ny fotoana.nanomboka ny 1 Janoary 100 ka hatramin’ny 31 Desambra 9999
zavatra4 baotyReferansa zavatraReference zavatra rehetra
StringmiovaKarazana karazana. Ny karazana String dia mety amin'ny halavany raikitra na miovaova. Ampiasaina matetika kokoa amin'ny halavany miovaovaLava raikitra - hatramin'ny tarehintsoratra 65 eo ho eo. Ny halavany miovaova - hatramin'ny 500 lavitrisa tarehintsoratra
VariantmiovaMety misy daty, mitsingevana, na tadin-tsoratra. Ity karazana ity dia ampiasaina amin'ny tranga izay tsy fantatra mialoha ny karazana data hampidirina.Number - Double, string - String

Mazava ho azy, amin'ny fampiasana ny tabilao etsy ambony sy ny fisafidianana ny karazana angona mety, azonao atao ny mampiasa fitadidiana ara-toekarena kokoa (ohatra, misafidy ny karazana data. Integer fa tsy Long or mpitovo fa tsy Double). Na izany aza, rehefa mampiasa karazana angon-drakitra misimisy kokoa ianao dia mila mitandrina mba tsy hanandrana hampiditra sanda lehibe tsy mifandanja aminy ny codeo.

Fanambarana Variables sy Constants

Fanamarihan'ny mpandika teny: Raha miresaka momba ny variables ao amin'ny VBA, dia ilaina ny manonona teboka iray tena manan-danja. Raha manambara fari-piainana isika nefa tsy manome lanja azy, dia atomboka amin'ny sanda default izany:

• ny tady lahatsoratra dia atomboka amin'ny tady foana;

• isa - sanda 0;

• karazana varimbazaha boolean — Diso;

• daty – 30 Desambra 1899.

Alohan'ny hampiasana ny miovaova na tsy miova dia tsy maintsy ambara izany. Mba hanaovana izany, ampio ity andalana tsotra manaraka ity amin'ny macro:

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

Ao amin'ny andalana ambony ny kaody Anarana_variable dia ny anaran'ny faribolana izay ho ampiasaina amin'ny code, ary Data_Type dia iray amin'ireo karazana angon-drakitra avy amin'ny tabilao omena kely aloha ato amin'ity lahatsoratra ity. Ohatra:

Dim sVAT_Rate toy ny Single Dim i As Integer

Toy izany koa no ambara ny Constants, fa rehefa manambara tsy miova dia tsy maintsy aseho avy hatrany ny sandany. Ohatra, toy izao:

Const iMaxCount = 5000 Const iMaxScore = 100

Tsy ilaina ny manambara variables amin'ny Excel. Amin'ny alàlan'ny default, ny variables rehetra tafiditra fa tsy nambara ao amin'ny Excel dia hanana ny karazana Variant ary ho afaka hanaiky ny sandan'ny isa sy ny soratra.

Noho izany, ny programmer dia afaka mampiasa ny fari-piainana vaovao amin'ny fotoana rehetra (na dia tsy nambara aza izany), ary ny Excel dia hitondra azy ho toy ny karazana varimbazaha. Variant. Na izany aza, misy antony maromaro tsy tokony hanaovana izany:

  1. Fampiasana fitadidiana sy hafainganam-pandehan'ny kajy. Raha toa ka tsy manambara fari-pitsipika miaraka amin'ny famantarana ny karazana data ianao, dia apetraka amin'ny karazana izany amin'ny alàlan'ny default Variant. Ity karazana data ity dia mampiasa fitadidiana bebe kokoa noho ireo karazana data hafa. Ny bita vitsivitsy fanampiny isaky ny fari-piainana dia mety tsy dia be loatra, fa amin'ny fampiharana, ny programa dia mety manana fari-piainana an'arivony (indrindra rehefa miasa amin'ny array). Noho izany, ny fahatsiarovana fanampiny ampiasain'ny variables toy ny Variant, raha ampitahaina amin'ny karazana varimbazaha Integer or mpitovo, afaka manampy vola be. Fanampin'izany, ny asa miaraka amin'ny karazana varimbazaha Variant dia tanterahina miadana kokoa noho ny amin'ny faribolan'ny karazany hafa, tsirairay avy, ny karazany an'arivony fanampiny Variant afaka mampiadana be ny kajy.
  2. Fisorohana ny diso amin'ny anarana miovaova. Raha ambara avokoa ny fari-piainana rehetra, dia azo ampiasaina ny fanambarana VBA − Option Explicit (hiresaka momba izany isika any aoriana) mba hamantarana ireo fari-piadidiana tsy voambara rehetra. Izany dia manafoana ny fisehon'ny lesoka ao amin'ny programa vokatry ny anarana miovaova voasoratra diso. Ohatra, amin'ny fampiasana variable iray antsoina hoe sVAT_Rate, afaka manao typo ianao ary, manendry sanda amin'ity fari-piainana ity, soraty hoe: “VATRate = 0,175”. Andrasana fa manomboka izao ny fari-piadidiana sVAT_Rate tokony ahitana ny sanda 0,175 – fa mazava ho azy fa tsy izany. Raha toa ka alefa ny fomba fanambaràna tsy maintsy atao amin'ny fari-pitsipika ampiasaina rehetra, dia hanondro hadisoana avy hatrany ny mpanangom-bokatra VBA, satria tsy hahita ny fari-piainana. VATRAte anisan’ireo nambara.
  3. Manasongadina soatoavina tsy mifanaraka amin'ny karazana fari-piainana nambara. Raha manambara fari-pahalalana amin'ny karazana iray ianao ary manandrana manendry angon-drakitra amin'ny karazana hafa ho azy, dia hahazo hadisoana ianao, izay, raha avela tsy ahitsy, dia mety hahatonga ny programa hianjera. Raha vao jerena dia mety ho toy ny antony tsara tsy hanambarana varimbazaha izany, fa raha ny marina, noho ny teo aloha dia hita fa ny iray amin'ireo varimbazaha dia nahazo ny angona diso izay tokony ho azony - tsara kokoa! Raha tsy izany, raha mitohy mandeha ny programa, dia mety ho diso sy tsy ampoizina ny valiny, ary ho sarotra kokoa ny hahita ny antony mahatonga ny fahadisoana. Azo atao ihany koa ny hoe "mahomby" ny macro. Vokatr'izany dia tsy ho voamarika ny fahadisoana ary hitohy ny asa miaraka amin'ny angona diso!

Amin'io lafiny io dia ilaina ny mamantatra karazana data diso ary manitsy haingana ny fahadisoana toy izany ao amin'ny code. Noho ireo antony ireo dia asaina manambara ny fari-piainana rehetra ianao rehefa manoratra macro VBA.

Option Explicit

mpandraharaha Option Explicit mahatonga ny fambara rehetra izay hampiasaina amin'ny kaody VBA, ary ny sainam-pirenena rehetra tsy voambara ho fahadisoana mandritra ny fanangonana (alohan'ny hanombohan'ny famonoana kaody). Tsy sarotra ny fampiharana an'ity operator ity - soraty fotsiny ity andalana ity eo an-tampon'ny rakitra VBA:

Option Explicit

Raha te hampiditra foana Option Explicit eny an-tampon'ny mody VBA vaovao noforonina, dia azo atao ho azy izany. Mba hanaovana izany, dia mila mamela ny safidy Mitaky Fanambarana Variable ao amin'ny fikandrana tonian-dahatsoratra VBA.

Izany dia atao toy izao:

  • Avy amin'ny menio Visual Basic Editor, tsindrio fitaovana > Options
  • Ao amin'ny fifanakalozan-kevitra miseho, sokafy ny tabilao Editor
  • Zahao ilay boaty Mitaky Fanambarana Variable sy ny asa fanaovan-gazety OK

Rehefa afaka, ny tady Option Explicit dia ampidirina ho azy eo am-piandohan'ny module vaovao noforonina.

Saran'ny Variable sy Constants

Ny fari-piainana na tsy miova nambara tsirairay dia manana ny faritra voafetra, izany hoe ampahany voafetra amin'ny programa misy an'io variable io. Miankina amin'ny toerana nanaovana ny fanambarana ny fari-piainana na tsy miova ny velarana. Raiso, ohatra, ny variable sVAT_Rate, izay ampiasaina amin'ny asa Total_Vidiny. Ity tabilao manaraka ity dia miresaka safidy roa ho an'ny scoping miovaova sVAT_Ratenambara tamin'ny toerana roa samy hafa ao amin'ny module:

Option Explicit Dim sVAT_Rate ho toy ny singa tokana Total_Cost() As Double ... End Function
Raha ny variable sVAT_Rate nambara tany am-piandohan'ny môdôly, avy eo ny sahan'ity fari-piainana ity dia ny module manontolo (izany hoe ny variable sVAT_Rate dia ho fantatry ny fomba rehetra ato amin'ity module ity).

Noho izany, raha ao amin'ny asa Total_Vidiny miovaova sVAT_Rate dia homena sanda sasany, avy eo ny asa manaraka atao ao anatin'io module io dia hampiasa ny fari-piainana sVAT_Rate mitovy hevitra.

Na izany aza, raha misy asa ao amin'ny module hafa antsoina, dia ho azy ny fari-piainana sVAT_Rate tsy ho fantatra.

Option Explicit Function Total_Cost() As Double Dim sVAT_Rate As Single ... End Function
Raha ny variable sVAT_Rate nambara tamin'ny fiandohan'ny asa Total_Vidiny, dia ho voafetra amin'ity asa ity ihany ny sahan'izy ireo (izany hoe ao anatin'ny asa Total_Vidiny, azonao ampiasaina ny variable sVAT_Rate, fa tsy any ivelany).

Rehefa manandrana mampiasa sVAT_Rate Amin'ny fomba hafa, ny VBA compiler dia hitatitra fahadisoana satria tsy nambara ivelan'ny fiasa io fari-piainana io Total_Vidiny (raha toa ka ampiasaina ny operator Option Explicit).

Ao amin'ny ohatra aseho etsy ambony, ny fari-piadidiana dia ambara amin'ny haavon'ny module miaraka amin'ny teny fototra Dim. Na izany aza, mety ilaina ny hoe azo ampiasaina amin'ny modules hafa ny variables nambara. Amin'ny toe-javatra toy izany, mba hanambara faribolana fa tsy teny fototra Dim tsy maintsy ampiasaina ny teny fanalahidy Public.

Raha ny tokony ho izy, mba hanambarana ny fari-piainana amin'ny haavon'ny module, fa tsy ny teny fototra Dim azo ampiasaina ny teny fanalahidy Private, izay manondro fa io fari-piainana io dia natao ho an'ny fampiasana afa-tsy amin'ny maody ankehitriny.

Azonao atao koa ny mampiasa teny fanalahidy hanambarana ny tsy miova. Public и Private, fa tsy ho solon'ny teny fototra Const, miaraka aminy.

Ireto ohatra manaraka ireto dia mampiseho ny fampiasana teny fanalahidy Public и Private ampiharina amin'ny miovaova sy tsy miova.

Safidy sVAT_Rate ho an'ny daholobe ho Const Public tokana iMax_Count = 5000 ...    
Amin'ity ohatra ity, ny teny fanalahidy Public ampiasaina hanambara faribolana sVAT_Rate ary tsy miova iMax_Count. Ny sahan'ireo singa ambara amin'izany fomba izany dia ny tetikasa manontolo amin'izao fotoana izao.

Midika izany sVAT_Rate и iMax_Count dia ho hita ao amin'ny maodely tetikasa rehetra.

Safidy sVAT_Rate manokana tsy miankina amin'ny maha Const tsy miankina tokana iMax_Count = 5000 ...    
Amin'ity ohatra ity, hanambara variable sVAT_Rate ary tsy miova iMax_Count teny fanalahidy ampiasaina Private. Ny sahan'ireo singa ireo dia ny maody ankehitriny.

Midika izany sVAT_Rate и iMax_Count dia ho hita amin'ny fomba fiasa rehetra amin'ny maody ankehitriny, fa tsy ho azon'ny fomba fiasa ao amin'ny maody hafa.

Leave a Reply