VBA varianta datu tips (mainīgais mainīgais)

Variants Mainīgā tips

Mainīgais mainīgais var saturēt jebkuru datu laiku (virkne, veseli skaitļi, decimāldaļas, objekti utt.). Ja jūs nedeklarējat mainīgā veidu, jūsu mainīgais tiks uzskatīts par variantu.

Lai deklarētu mainīgo variantu, izmantojiet Dim Statement (saīsinājums no Dimension):

1 Dim varName kā Variant
1 Dim rng kā Variant

Pēc tam, lai mainīgajam piešķirtu vērtību, vienkārši izmantojiet vienādības zīmi:

1 varName = "Jānis"
1 rng = loksnes (1). Diapazons ("A1")

Ievietošana procedūrā izskatās šādi:

12345678910 Sub strExample ()"paziņot variantusDim strName As VariantDim rng kā variants'aizpildiet mainīgosstrName = "Freds Smits"Iestatīt rng = loksnes (1). Diapazons ("A1")'aizpildiet lapurng.Value = strNameBeigu apakš

Ja izpildīsit iepriekš minēto kodu, 1. lapas A1 šūna tiks aizpildīta ar “Fred Smith”

Pēc iepriekš minētajiem nosaukumiem mēs varētu secināt, ka varName saturētu tekstu, un objSheet saturētu darblapas objektu. Bet patiesībā jebkura veida datus var novirzīt uz mainīgo.

Iepriekš norādītos mainīgos varat aizpildīt šādi, un kļūda nenotiks.

1 varName = 6
1 objSheet - "Freds"

Ir neparasti izmantot mainīgos mainīgos un to neuzskata par labu praksi. Tomēr dažos gadījumos mainīgie mainīgie ir noderīgi.

Deklarēt mainīgo mainīgo moduļa vai globālā līmenī

Iepriekšējā piemērā procedūrā deklarējāt mainīgo Variant. Ar procedūru deklarētos mainīgos var izmantot tikai šīs procedūras ietvaros.

Tā vietā varat deklarēt mainīgos mainīgos moduļa vai globālā līmenī.

Moduļa līmenis

Moduļa līmenis mainīgie tiek deklarēti koda moduļu augšpusē ar Izmērs paziņojums, apgalvojums.

Šos mainīgos var izmantot jebkurā koda moduļa procedūrā.

Globālais līmenis

Globālais līmenis mainīgie tiek deklarēti arī koda moduļu augšpusē. Tomēr tā vietā, lai izmantotu Izmērs paziņojumu, jūs izmantojat Publisks paziņojums, kas norāda, ka virknes mainīgais ir pieejams izmantošanai visā jūsu VBA projektā.

1 Publisks strName kā Variant

Ja mainīgo variantu deklarējāt moduļa līmenī un izmantojat citā modulī, radīsies kļūda.

Ja mainīgā varianta deklarēšanai būtu izmantojis publisko atslēgvārdu, kļūda nenotiktu un procedūra darbotos nevainojami.

Varianta izmantošana Excel aizpildīšanai

Apsveriet šādu procedūru:

12345678910111213141516171819 Apakšpārbaude"deklarējiet virkni, lai turētu produkta nosaukumuDim strProduct kā virkne'deklarējiet veselu skaitli, lai turētu produkta daudzumuDim iQty kā vesels skaitlis'deklarē dubultā, lai noturētu produkta cenu un kopējo cenuDim dblCena kā dubultāDim dblKopējais kā dubultā'aizpildiet mainīgosstrProduct = "Universālie milti"iQty = 3dblPrice = "5,00 ASV dolāri"dblTotal = "15,00 ASV dolāri""aizpildiet Excel lapuDiapazons ("A1") = strProductDiapazons ("A2") = iQtyDiapazons ("A3") = dblCenaDiapazons ("A4") = dbl KopāBeigu apakš

Palaižot šo kodu, rodas šāda kļūda.

Noklikšķiniet uz Atkļūdot

Jūs nevarat ievietot dolāra zīmi mainīgajā, jo mainīgais ir deklarēts kā a Dubultā, un tāpēc nevar saglabāt virkņu vērtības.

Deklarēt dblCena un dblKopā kā varianti, kas nozīmē, ka jūs neaprobežojaties tikai ar datu tipu.

1 Dim dblCena kā variants
1 Dim dblKopējais kā variants

Atkārtoti palaidiet kodu, un dati parādīsies Excel lapā, kā vajadzētu.

Ņemiet vērā, ka A4 un A5 ievadītie dati pēc tam tiek automātiski konvertēti programmā Excel ciparos.

Dinamiska masīva deklarēšana

Mainīgie mainīgie ir noderīgi arī tad, kad deklarējat dinamisku masīvu, jo tie ļauj masīva lielumam mainīties izpildes laikā.

ArVariantu masīvs, jums nav jānosaka masīva lielums. Izmērs tiks automātiski pielāgots.

123456789 ApakšvariantsArray ()Dim arrList () Kā variants'Definējiet vērtībasarrList = Masīvs (1, 2, 3, 4)'Mainīt vērtībasarrList = Masīvs (1,2,3,4,5,6)“Izejas pozīcija 4MsgBox arrVar (4)Beigu apakš

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave