Változó Változótípus
Egy változóváltozó bármikor tárolhat adatokat (karakterlánc, egész számok, tizedesjegyek, objektumok stb.). Ha nem deklarál változótípust, akkor a változót változatnak tekintjük.
A Variant változó deklarálásához használja a Dim Statement (a Dimension rövidítése) kifejezést:
1 | Dim varName mint Variant |
1 | Dim rng változatként |
Ezután, ha értéket szeretne rendelni egy változóhoz, egyszerűen használja az egyenlőségjelet:
1 | varName = "János" |
1 | rng = Táblázatok (1). Tartomány ("A1") |
Ennek az eljárásba történő beillesztése így néz ki:
12345678910 | Sub strExample ()'deklarálja a változatokatDim strName VariantDim rng mint változat'töltse ki a változókatstrName = "Fred Smith"Set rng = Táblázatok (1). Tartomány ("A1")'töltse ki a lapotrng.Érték = strNameEnd Sub |
Ha futtatja a fenti kódot, akkor az 1. lapon található A1 cella „Fred Smith” lesz kitöltve
A fent megnevezett nevek alapján arra a következtetésre jutottunk, hogy a varName szöveget tartalmazna, és a objSheet munkalap objektumot tartalmazna. Valójában azonban bármilyen típusú adat irányítható a változóra.
A fent megadott változókat az alábbiak szerint töltheti fel, és nem lép fel hiba.
1 | varName = 6 |
1 | objSheet - "Fred" |
Szokatlan a változatos változók használata, és nem tekinthető jó gyakorlatnak. Időnként azonban a Variant változók hasznosak.
Változóváltozó deklarálása modul vagy globális szinten
Az előző példában a Variant változót deklarálta egy eljárásban. Az eljárással deklarált változók csak ezen az eljáráson belül használhatók.
Ehelyett a variáns változókat modul vagy globális szinten is deklarálhatja.
Modul szint
A modul szintje a változókat a kódmodulok tetején a Homályos nyilatkozat.
Ezek a változók az adott kódmodul bármely eljárásával használhatók.
Globális szint
Globális szinten a változókat a kódmodulok tetején is deklarálják. Azonban ahelyett, hogy a Homályos nyilatkozatot használja Nyilvános utasítás, amely azt jelzi, hogy a karakterlánc -változó elérhető a VBA -projekt során.
1 | Nyilvános strName mint Variant |
Ha a variáns változóját modul szinten deklarálta, és egy másik modulban használta, akkor hiba lép fel.
Ha a Nyilvános kulcsszót használta volna a változatváltozó deklarálásához, a hiba nem fordulna elő, és az eljárás tökéletesen futna.
Változat használata az Excel feltöltéséhez
Fontolja meg a következő eljárást:
12345678910111213141516171819 | AlvizsgálatVáltozó'deklaráljon egy karakterláncot a termék nevének tárolásáraDim strProduct karakterláncként'deklaráljon egy egész számot a termék mennyiségének megőrzéséreDim iQty egész számként'deklarálja a duplákat, hogy megtartsa a termék árát és a teljes áratDim dblÁr duplaDim dblTotal as Double'töltse ki a változókatstrProduct = "Univerzális liszt"iQty = 3dblPrice = "$ 5.00"dblTotal = "$ 15.00"'töltse ki az Excel lapotTartomány ("A1") = strProductTartomány ("A2") = iQtyTartomány ("A3") = dblÁrTartomány ("A4") = dblTotalEnd Sub |
A kód futtatásakor a következő hiba lép fel.
Kattintson a Hibakeresés gombra
Nem tehet dollárjelet a változóba, mivel a változót a -ként deklarálják Kettős, és ezért nem tudja tárolni a karakterlánc értékeit.
Kijelent dblÁr és dblTotal változatokként, ami azt jelenti, hogy nem korlátozódik egy adattípusra.
1 | Dim dblPrice as Variant |
1 | Dim dblTotal as Variant |
Futtassa újra a kódot, és az adatok megfelelően megjelennek az Excel-lapon.
Vegye figyelembe, hogy az A4 és A5 formátumban megadott adatokat az Excel automatikusan számokká alakítja át.
Dinamikus tömb deklarálása
A változóváltozók akkor is hasznosak, ha dinamikus tömböt deklarál, mivel lehetővé teszik a tömb méretének változását futás közben.
Val,-velVariant Array, nem kell megadni a tömb méretét. A méret automatikusan beáll.
123456789 | Sub VariantArray ()Dim arrList () mint változat'Határozza meg az értékeketarrList = Tömb (1, 2, 3, 4)'Változtassa meg az értékeketarrList = Tömb (1,2,3,4,5,6)„Kimeneti pozíció 4MsgBox arrVar (4)End Sub |