Verstinn Variabelen a Konstanten an Excel Macroen

An dësem Artikel léiert Dir wat Konstanten a Variablen a Makroen sinn, wou se kënne benotzt ginn, a wat den Haaptunterschied tëscht verschiddenen Datentypen ass. Et gëtt och opgedeckt firwat Konstanten gebraucht ginn, wann Dir just eng Variabel schreiwen kann an ni änneren.

Wéi aner Programméierungssproochen kënnen d'Donnéeën a Variablen oder Konstanten gespäichert ginn (déi béid och dacks als Datecontainer bezeechent ginn). Dëst ass den Haaptunterschied tëscht dëse Konzepter. Déi fréier kann änneren jee no wat am Programm geschitt. Am Géigesaz, Konstanten ginn eemol festgeluecht an änneren net hire Wäert.

Konstanten kënnen nëtzlech sinn wann Dir de selwechte grousse Wäert e puer Mol benotze musst. Amplaz d'Zuel ze kopéieren, kënnt Dir einfach den Numm vun der Konstante schreiwen. Zum Beispill kënnt Dir de konstante "Pi" benotze fir Pi ze späicheren, wat e konstante Wäert ass. Et ass ganz grouss, an all Kéier ass et relativ schwéier et ze schreiwen oder ze sichen a kopéieren. An dofir ass et genuch zwee Zeechen ze schreiwen, an d'Ëmwelt benotzt automatesch déi gewënscht Zuel.

Den Excel Benotzer muss Variabelen deklaréieren wann hien de Wäert vun Zäit zu Zäit muss änneren. Zum Beispill kënnt Dir eng Variabel genannt sVAT_Rate setzen, déi den aktuellen TVA-Taux fir de Produit späichert. Wann et ännert, kënnt Dir et séier korrigéieren. Dëst ass besonnesch nëtzlech fir déi, déi Geschäfter an den USA maachen, wou e puer Wueren guer net ënner TVA ënnerleien (an dës Steier ënnerscheet sech och vu Staat zu Staat).

Datatypen

All Datecontainer kann ee vu verschiddenen Typen sinn. Hei ass eng Tabell déi d'Standardarten vu veraarbechten Informatioun beschreift. Et gi vill vun hinnen, an et kann engem Ufänger schéngen Ufank datt se all aner widderhuelen. Awer dëst ass en illusorescht Gefill. Weiderliesen fir ze léieren firwat de richtegen Datetyp spezifizéieren sou wichteg ass.

Et ass net recommandéiert en Datentyp ze benotzen deen méi Plaz an der Erënnerung fir kleng Zuelen ophëlt. Zum Beispill, fir d'Nummer 1 ass et genuch fir de Byte-Typ ze benotzen. Dëst wäert e positiven Effekt op d'Performance vum ausführbare Modul hunn, besonnesch op schwaache Computeren. Mä et ass wichteg hei net ze wäit ze goen. Wann Dir en Datentyp benotzt deen ze kompakt ass, passt vläicht en iwwerdimensionéierte Wäert net dran.

Konstanten a Variablen erklären

En Datecontainer ze benotzen ouni et als éischt ze deklaréieren ass staark decouragéiert. Da kënnen eng Rei vu Probleemer entstoen, fir ze vermeiden datt et néideg ass e puer kleng Zeilen Code mat Opzielung vu Verännerlechen oder Konstanten ze schreiwen.

Fir eng Variabel ze deklaréieren, gëtt d'Dim Ausso benotzt. Zum Beispill, wéi dëst:

Dim Variable_Name As Integer

Variable_Name ass den Numm vun der Variabel. Als nächst gëtt den As Bedreiwer geschriwwe, wat den Datetyp ugeet. Amplaz vun de Saiten "Variable_Name" an "Integer", kënnt Dir Ären eegenen Numm an Datentyp aginn.

Konstanten kënnen och deklaréiert ginn, awer Dir musst als éischt hire Wäert uginn. Eng vun den Optiounen ass:

Const iMaxCount = 5000

A Fairness, an e puer Fäll kënnt Dir ouni eng Variabel deklaréieren, awer an dësem Fall ginn se automatesch den Typ Variant zougewisen. Allerdéngs ass dëst net recommandéiert aus de folgende Grënn:

  1. Variant gëtt vill méi lues veraarbecht, a wann et vill sou Variablen gëtt, kann d'Informatiounsveraarbechtung op schwaache Computeren däitlech verlangsamt ginn. Et géif schéngen, datt déi Sekonnen wäert entscheeden? Awer wann Dir eng grouss Zuel vu Codelinnen schreiwen musst, an dann och op schwaache Computeren lafen (déi nach ëmmer verkaaft ginn, well modern Büro Suiten vill RAM erfuerderen), kënnt Dir d'Aarbecht komplett ophalen. Et gi Fäll, wou schlecht konzipéiert Schreiwen vu Makroen zum Afréiere vu Smartbooks gefouert hunn, déi e klengt RAM hunn an net entwéckelt sinn fir komplex Aufgaben ze maachen. 
  2. Misprints an Nimm sinn erlaabt, wat verhënnert ka ginn andeems Dir d'Option Explizit Ausso benotzt, déi Iech erlaabt eng net deklaréiert Variabel ze fannen, wann eng fonnt gëtt. Dëst ass en einfache Wee fir Feeler z'entdecken, well de geringsten Tippfeeler verursaacht datt den Dolmetscher d'Variabel net identifizéieren kann. A wann Dir de Variabel Deklaratiounsmodus aktivéiert, erlaabt den Dolmetscher Iech einfach net de Makro ze lafen, wann Datenbehälter fonnt ginn, déi net am Ufank vum Modul deklaréiert goufen.
  3. Vermeit Feeler verursaacht vu variabelen Wäerter déi net dem Datetyp passen. Normalerweis gëtt en Textwäert un eng ganz Zuel Variabel zougewisen e Feeler. Jo, op der enger Säit gëtt e generesche Typ ouni Deklaratioun zougewisen, awer wa se am Viraus deklaréiert ginn, da kënnen zoufälleg Feeler vermeit ginn.

Dofir, trotz allem, ass et recommandéiert all Variabelen an Excel Makroen ze deklaréieren.

Et gëtt eng méi Saach am Kapp ze halen wann Dir Variabelen deklaréiert. Et ass méiglech keng Wäerter un eng Variabel ze ginn wann Dir se deklaréiert, awer an dësem Fall kritt se e Standardwäert. Zum Beispill:

  1. Linnen sinn eidel gemaach.
  2. D'Zuelen huelen op de Wäert 0.
  3. Variablen vum Typ Boolean ginn ufanks als falsch ugesinn.
  4. De Standarddatum ass den 30. Dezember 1899.

Zum Beispill, Dir musst de Wäert 0 net un eng ganz Zuel Variabel zouzeschreiwen wann kee Wäert virdru uginn ass. Si enthält schonn dës Zuel.

Optioun Explizit Ausso

Dës Ausso erlaabt Iech all d'Variabelen ze deklaréieren déi am VBA Code benotzt ginn an d'Präsenz vun all net deklaréierten Container bestëmmen ier de Code leeft. Fir dës Fonktioun ze benotzen, schreift einfach eng Zeil vun Option Explizit Code ganz uewen um Makrocode.

Wann Dir dës Ausso all Kéier an Ärem Code ophuele musst, kënnt Dir dat mat engem speziellen Astellung am VBA Editor maachen. Fir dës Optioun z'aktivéieren, musst Dir:

  1. Gitt an d'Entwécklungsëmfeld laanscht de Wee - Tools> Optiounen.
  2. An der Fënster déi duerno opmaacht, öffnen den Editor Tab.
  3. A schlussendlech, kontrolléiert d'Këscht nieft dem Element Variabel Deklaratioun erfuerderen.

Nom Ofschloss vun dëse Schrëtt, klickt op de "OK" Knäppchen. 

Dat ass et, elo wann Dir all neie Makro schreift, gëtt dës Linn automatesch uewen um Code agebaut.

Ëmfang vu Konstanten a Variablen

All Variabel oder konstant huet nëmmen e limitéierten Ëmfang. Et hänkt dovun of wou Dir et deklaréiert.

Ugeholl mir hunn eng Funktioun Total_Cost(), an et benotzt d'Variabel sVAT_Taux. Ofhängeg vun der Positioun am Modul, wäert et en aneren Ëmfang hunn:

Optioun explizit

Dim sVAT_Rate As Single

Funktioun Total_Cost () Als Duebel

.

.

.

End Function

Wann eng Variabel uewen an engem Modul selwer deklaréiert gëtt, propagéiert se duerch dee Modul. Dat ass, et kann duerch all Prozedur gelies ginn.

Ausserdeem, wann eng vun de Prozeduren de Wäert vun der Variabel geännert huet, da liest deen nächsten och dëse korrigéierte Wäert. Awer an anere Moduler gëtt dës Variabel nach ëmmer net gelies.

Optioun explizit

Funktioun Total_Cost () Als Duebel

Dim sVAT_Rate As Single

   .

   .

   .

End Function

An dësem Fall gëtt d'Variabel an der Prozedur deklaréiert, an den Dolmetscher werfen e Feeler wann se an enger anerer Prozedur benotzt gëtt.

Wann Dir wëllt datt d'Variabel vun anere Moduler gelies gëtt, musst Dir d'Ëffentlech Schlësselwuert benotzen amplaz vum Dim Schlësselwuert. Ähnlech kënnt Dir den Ëmfang vun enger Variabel op nëmmen den aktuelle Modul limitéieren andeems Dir d'Ëffentlech Ausso benotzt, déi amplaz vum Wuert Dim geschriwwe gëtt.

Dir kënnt den Ëmfang vun de Konstanten op eng ähnlech Manéier setzen, awer d'Schlësselwuert hei ass zesumme mam Const Bedreiwer geschriwwen.

Hei ass en Dësch mat engem gutt Beispill vu wéi et mat Konstanten a Variabelen funktionnéiert.

Optioun explizit

Ëffentlech sVAT_Taux Als Single

Public Const iMax_Count = 5000

An dësem Beispill kënnt Dir gesinn wéi d'Ëffentlech Schlësselwuert benotzt gëtt fir eng Variabel ze deklaréieren, a wat Dir braucht am Visual Basic Editor ze schreiwen fir eng ëffentlech Konstant ze deklaréieren. Den Ëmfang vun dëse Wäertbehälter gëllt fir all Moduler.
Optioun explizit

Privat sVAT_Taux Als Single

Privat Const iMax_Count = 5000

Hei gi Variabelen a Konstanten deklaréiert mam Private Schlësselwuert. Dëst bedeit datt se nëmmen am aktuellen Modul gesi kënne ginn, a Prozeduren an anere Moduler kënnen se net benotzen.

Firwat Konstanten a Variablen gebraucht ginn

D'Benotzung vu Konstanten a Variabelen erlaabt Iech de Grad vun der Verständlechkeet vum Code ze erhéijen. A wann Ufänger am Allgemengen keng Froen hunn iwwer firwat Variabelen gebraucht ginn, da ginn et vill Ambiguititéiten iwwer d'Bedierfnes fir Konstanten. An dës Fro schéngt, op den éischte Bléck, ganz logesch. No all, kënnt Dir eng Variabel eemol deklaréieren an ni méi änneren.

D'Äntwert stellt sech eraus iergendwou am selwechte Fliger ze sinn wéi wat d'Benotzung vun Datentypen ugeet, déi e grousse Raum an der Erënnerung besetzen. Wa mir mat enger grousser Zuel vu Variablen ze dinn hunn, kënne mir zoufälleg en existente Container änneren. Wann de Benotzer virschreift datt e bestëmmte Wäert ni ännert, da kontrolléiert d'Ëmfeld dat automatesch.

Dëst ass besonnesch wichteg wann de Makro vu verschiddene Programméierer geschriwwe gëtt. Et kann ee wëssen datt eng Variabel net sollt änneren. An déi aner ass net. Wann Dir de Const Bedreiwer spezifizéiert, wäert en aneren Entwéckler wëssen datt dëse Wäert net ännert.

Oder, wann et eng Konstante mat engem Numm ass, an d'Variabel huet en aneren, awer ähnlechen Numm. Den Entwéckler kann se einfach duercherneen bréngen. Zum Beispill gëtt eng Variabel déi net geännert muss ginn Variable11 genannt, an eng aner déi geännert ka ginn ass Variable1 genannt. Eng Persoun kann automatesch, wann Dir Code schreift, zoufälleg eng extra Eenheet iwwersprangen an et net bemierken. Als Resultat gëtt de Container fir Wäerter geännert, déi net beréiert ginn.

Oder den Entwéckler selwer kann vergiessen, wéi eng Variabelen hien beréieren kann a wéi eng net. Dëst geschitt dacks wann de Code fir e puer Wochen geschriwwe gëtt, a seng Gréisst gëtt grouss. Während dëser Zäit ass et ganz einfach ze vergiessen och wat dës oder déi Variabel bedeit.

Jo, Dir kënnt mat Kommentaren an dëser Situatioun maachen, awer ass et net méi einfach d'Wuert Const ze spezifizéieren?

Conclusiounen

Variablen sinn e wesentleche Bestanddeel vun der Makroprogramméierung, déi Iech erlaabt komplex Operatiounen auszeféieren, vu Berechnungen fir de Benotzer iwwer bestëmmten Eventer z'informéieren oder spezifesch Wäerter an den Zellen vun enger Spreadsheet ze spezifizéieren.

Konstanten solle benotzt ginn wann den Entwéckler sécher weess datt den Inhalt vun dësen Container an Zukunft net ännert. Et ass recommandéiert keng Variablen ze benotzen amplaz, well et méiglech ass zoufälleg e Feeler ze maachen.

Hannerlooss eng Äntwert