VBA variáns adattípus (Dim változó)

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

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave