VBA variandi andmetüüp (muutuja)

Variant Muutuja tüüp

Variandi muutuja mahutab igal ajal andmeid (string, täisarvud, kümnendkohad, objektid jne). Kui te muutuja tüüpi ei deklareeri, loetakse teie muutuja variandiks.

Muutuja Variant deklareerimiseks kasutage Dim Statement (Dimensioni lühend):

1 Dim varName kui Variant
1 Dim rng variandina

Seejärel kasutage muutujale väärtuse määramiseks lihtsalt võrdusmärki:

1 varName = "Johannes"
1 rng = Lehed (1). Vahemik ("A1")

Selle protseduuri lisamine näeb välja selline:

12345678910 Sub strExample ()'kuulutage variandid väljaDim strName VariantDim rng Variantina'täitke muutujadstrName = "Fred Smith"Määra rng = Lehed (1). Vahemik ("A1")'täitke lehtrng.Value = strNameEnd Sub

Kui käivitate ülaltoodud koodi, täidetakse lehe 1 lahtris A1 „Fred Smith”

Ülalnimetatud nimede järgi võime järeldada, et varName sisaldab teksti ja objSheet sisaldaks töölehe objekti. Kuid tegelikult saab muutujale suunata mis tahes tüüpi andmeid.

Ülaltoodud muutujad võite täita järgmiselt ja tõrkeid ei esine.

1 varName = 6
1 objSheet - "Fred"

Variatiivsete muutujate kasutamine on ebatavaline ja seda ei peeta heaks tavaks. Mõnel juhul on aga variandi muutujad kasulikud.

Deklareerige muutuja muutujaks moodulil või globaalsel tasandil

Eelmises näites deklareerisite protseduuri käigus muutuja Variant. Protseduuriga deklareeritud muutujaid saab kasutada ainult selle protseduuri raames.

Selle asemel saate deklareerida Variant muutujad moodulil või globaalsel tasandil.

Mooduli tase

Mooduli tase muutujad deklareeritakse koodimoodulite ülaosas koos Dim avaldus.

Neid muutujaid saab selle koodimooduli mis tahes protseduuriga kasutada.

Globaalne tase

Globaalne tase muutujad deklareeritakse ka koodimoodulite ülaosas. Selle asemel, et kasutada Dim avaldust, kasutate Avalik avaldus, mis näitab, et stringimuutuja on saadaval kasutamiseks kogu teie VBA projektis.

1 Avalik strName kui variant

Kui deklareerite variandi muutuja mooduli tasemel ja kasutate seda teises moodulis, ilmneb tõrge.

Kui oleksite variandi muutuja deklareerimiseks kasutanud märksõna Avalik, ei ilmneks viga ja protseduur toimiks ideaalselt.

Variandi kasutamine Exceli täitmiseks

Kaaluge järgmist protseduuri:

12345678910111213141516171819 Alamkatse muutuja"deklareerige string, mis hoiab toote nimeDim strToode stringina"deklareerige toote koguse hoidmiseks täisarvDim iQty täisarvuna"deklareerige kahekordsed, et hoida toote hinda ja koguhindaDim dblHind kahekordseltDim dblKokku topelt'täitke muutujadstrProduct = "Universaalne jahu"iQty = 3dblPrice = "5,00 dollarit"dblTotal = "15,00 dollarit"'täitke Exceli lehtVahemik ("A1") = strProductVahemik ("A2") = iQtyVahemik ("A3") = dblHindVahemik ("A4") = dblKokkuEnd Sub

Selle koodi käivitamisel ilmneb järgmine tõrge.

Klõpsake käsku Silumine

Te ei saa muutujale dollarimärki panna, kuna muutuja on deklareeritud a -na Kahekordneja seetõttu ei saa stringi väärtusi salvestada.

Kuulutama dblHind ja dblKokku variantidena, mis tähendab, et te pole piiratud andmetüübiga.

1 Dim dblHind variandina
1 Dim dblKokku variandina

Käivitage kood uuesti ja andmed kuvatakse Exceli lehel, nagu peaks.

Pange tähele, et A4 ja A5 sisestatud andmed teisendatakse seejärel Excelis automaatselt numbriteks.

Dünaamilise massiivi kuulutamine

Variatsioonimuutujad on kasulikud ka dünaamilise massiivi deklareerimisel, kuna need võimaldavad massiivi suurust käitusaja jooksul muuta.

KoosVariant Massiiv, ei pea massiivi suurust määratlema. Suurus kohandub automaatselt.

123456789 AlamvariantArray ()Dim arrList () Variandina'Määrake väärtusedarrList = Massiiv (1, 2, 3, 4)'Muutke väärtusiarrList = Massiiv (1,2,3,4,5,6)„Väljundpositsioon 4MsgBox arrVar (4)End Sub

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave