Tip de date variante VBA (variabilă dim)

Variant Variable Type

O Variantă Variantă poate conține orice moment de date (șir, numere întregi, zecimale, obiecte etc.). Dacă nu declarați un tip de variabilă, variabila dvs. va fi considerată variantă.

Pentru a declara o variabilă Variantă, utilizați declarația Dim (prescurtare pentru Dimension):

1 Dim varName ca variantă
1 Dim rng ca Variant

Apoi, pentru a atribui o valoare unei variabile, pur și simplu utilizați semnul egal:

1 varName = "John"
1 rng = Foi (1) .Gama („A1”)

Punerea acestui lucru într-o procedură arată astfel:

12345678910 SubstrExample ()'declarați varianteleDim strName Ca variantăDim rng Ca variantă'populează variabilelestrName = "Fred Smith"Set rng = Sheets (1) .Range ("A1")'populează foaiarng.Value = strNameSfârșitul Sub

Dacă rulați codul de mai sus, celula A1 din foaia 1 va fi completată cu „Fred Smith”

Prin numele declarate mai sus, am putea concluziona că varName ar conține text și objSheet ar conține un obiect foaie de lucru. Dar, de fapt, orice tip de date poate fi direcționat către variabilă.

Puteți completa variabilele declarate mai sus după cum urmează și nu va apărea nicio eroare.

1 varName = 6
1 objSheet - „Fred”

Este neobișnuit să se utilizeze variabile variabile și nu sunt considerate bune practici. Cu toate acestea, uneori, variabilele variabile sunt utile.

Declarați varianta variabilă la nivel de modul sau global

În exemplul anterior, ați declarat variabila Variant în cadrul unei proceduri. Variabilele declarate cu o procedură pot fi utilizate numai în cadrul acestei proceduri.

În schimb, puteți declara variabile variabile la nivel de modul sau global.

Nivelul modulului

Nivelul modulului variabilele sunt declarate în partea de sus a modulelor de cod cu Dim afirmație.

Aceste variabile pot fi utilizate cu orice procedură din acel modul de cod.

Nivel global

La nivel global variabilele sunt, de asemenea, declarate în partea de sus a modulelor de cod. Cu toate acestea, în loc să utilizați fișierul Dim declarație, utilizați Public declarație pentru a indica faptul că variabila șir este disponibilă pentru a fi utilizată în întregul Proiect VBA.

1 StrName public ca variantă

Dacă ați declarat varianta variabilă la un nivel de modul și ați utiliza un alt modul, va apărea o eroare.

Dacă ați fi folosit cuvântul cheie public pentru a declara varianta variabilă, eroarea nu s-ar produce și procedura ar rula perfect.

Utilizarea unei variante pentru a completa Excel

Luați în considerare următoarea procedură:

12345678910111213141516171819 Subtest variabil'declarați un șir pentru a menține numele produsuluiDim strProduct ca șir„declarați un număr întreg pentru a păstra cantitatea de produsDim iQty ca număr întreg„declară duble pentru a deține prețul produsului și prețul totalDim dblPrice ca DubluDim dblTotal ca Dublu'populează variabilelestrProduct = "Făină pentru toate scopurile"iQty = 3dblPrice = "5,00 USD"dblTotal = "15,00 USD"'populează foaia ExcelRange ("A1") = strProductGama ("A2") = iQtyGama („A3”) = dblPriceGama ("A4") = dblTotalSfârșitul Sub

Când rulăm acest cod, apare următoarea eroare.

Faceți clic pe Depanare

Nu puteți pune un semn de dolar în variabilă deoarece variabila este declarată ca Dublași, prin urmare, nu poate stoca valorile șirului.

Declara dblPrice și dblTotal ca variante, ceea ce înseamnă că nu sunteți limitat la un tip de date.

1 Dim dblPrice ca variantă
1 Dim dblTotal ca variantă

Rulați din nou codul și datele vor apărea în foaia Excel așa cum ar trebui.

Rețineți că datele introduse în A4 și A5 sunt convertite automat de Excel în numere.

Declararea unei matrice dinamice

Variabilele variabile sunt, de asemenea, utile atunci când declarați o matrice dinamică, deoarece permit schimbarea dimensiunii matricei în timpul rulării.

CuVariant Array, nu este nevoie să definiți dimensiunea matricei. Dimensiunea se va regla automat.

123456789 Sub VariantArray ()Dim arrList () Ca variantă„Definiți valorilearrList = Array (1, 2, 3, 4)'Schimbă valoriarrList = Array (1,2,3,4,5,6)„Poziția de ieșire 4MsgBox arrVar (4)Sfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave