VBA karakterlánc adattípusa (Dim változó)

Karakterlánc változó típusa

A String adattípus a VBA egyik leggyakoribb adattípusa. A szöveg „karakterláncát” tárolja.

A String változó deklarálásához használja a Dim Statement (dimenzió rövidítése) parancsot:

1 Dim strName mint karakterlánc

Ha egy változóhoz értéket szeretne rendelni, használja az egyenlőségjelet:

1 strName = "Fred Smith"

Ennek az eljárásba történő beillesztése így néz ki:

12345678 Sub strExample ()'deklarálja a karakterláncotDim strName mint karakterlánc'töltse ki a karakterláncotstrName = "Fred Smith"'mutasd az üzenetdoboztMsgBox strnameEnd Sub

Ha futtatja a fenti kódot, a következő üzenetmező jelenik meg.

Fix karakterlánc változó

Valójában 2 típusú karakterlánc -változó létezik - fix és változó.

A „változó” karakterlánc -változó (az előző példában látható) lehetővé teszi, hogy a karakterlánc tetszőleges hosszúságú legyen. Ez a leggyakoribb.

A „rögzített” karakterlánc -változó határozza meg a karakterlánc méretét. Egy rögzített karakterlánc legfeljebb 65 400 karaktert tartalmazhat.

1 Dim strName mint karakterlánc *20

Rögzített változó definiálásakor a változó karaktereinek száma a helyére van zárva, még akkor is, ha kevesebb karaktert használ.

Figyelje meg a szóközöket az alábbi ábrán - a változó helytartókkal rendelkezik a karakterlánc többi karakteréhez, mivel a „Fred Smith” kevesebb, mint 20 karakter.

Ha azonban a hosszúság megadása nélkül deklarált egy karakterláncot, akkor a karakterlánc csak annyi karaktert tartalmaz, amennyit átadnak neki.

Karakterlánc -változó deklarálása modul vagy globális szinten

Az előző példában a String 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 String 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 String

Ha a karakterlánc változót egy modul szinten deklarálta, és egy másik modulban használta, akkor hiba lép fel.

Ha azonban a Nyilvános kulcsszót használja a karakterlánc változó deklarálásához, a hiba nem fordul elő, és az eljárás tökéletesen fut.

A karakterláncként tárolt értékek konvertálása

Előfordulhat, hogy az Excelben értékeket tárol szövegként - például importált egy CSV -fájlt, amely számokat helyett szöveget hozott be.

Vegye figyelembe, hogy az A1-ben szereplő érték balra igazított, ami egy szövegértéket jelez.

Használhatja a VBA funkció ezek a számok szöveggé alakíthatók

12345678 Sub ConvertValue ()'töltse ki a karakterláncotstrQty = Tartomány ("A1")'töltse ki a duplát a karakterlánccaldblQty = strQty'töltse ki a tartományt a számmalTartomány ("A1") = dblQtyEnd Sub

A kód futtatása után a szám jobbra mozdul, jelezve, hogy ez most számként van tárolva.

Ez különösen akkor hasznos, ha a cellák széles skáláját végzi.

123456789101112131415 Sub ConvertValue ()Dim strQty mint String, dblQty As DoubleDim rw mint egész, i mint egész'számolja meg a konvertálandó sorokatrw = Tartomány ("A1", Tartomány ("A1"). Vége (xlDown)). Sorok. Szám'ciklus a cellákon, és mindegyiket számgá alakítjaFor i = 0 to rw - 1'töltse ki a karakterláncotstrQty = Tartomány ("A1"). Eltolás (i, 0)'töltse ki a duplát a karakterlánccaldblQty = strQty'töltse ki a tartományt a számmalTartomány ("A1"). Eltolás (i, 0) = dblQtyKövetkező iEnd Sub

Ennek eredményeképpen az összes cella számgá alakul

Unod már a VBA kódpéldák keresését? Próbálja ki az AutoMacro -t!

Konvertálja az értékként tárolt karakterláncot

Hasonlóképpen előfordulhatnak olyan értékek is, amelyeket karakterláncból értékké kell alakítani - például, ha a telefonszám első nulláját kéri.

123456789101112131415 Sub ConvertString ()Dim strPhone mint karakterlánc, dblPhone mint kettősDim rw mint egész, i mint egész'számolja meg a konvertálandó sorokatrw = Tartomány ("A1", Tartomány ("A1"). Vége (xlDown)). Sorok. Szám'ciklus a cellákon, és mindegyiket számgá alakítjaFor i = 0 to rw - 1'töltse ki a karakterláncotdblPhone = Tartomány ("A1"). Eltolás (i, 0)'töltse ki a duplát a karakterlánccalstrPhone = "'0" & dblPhone'töltse ki a tartományt a számmalTartomány ("A1"). Eltolás (i, 0) = strphoneKövetkező iEnd Sub

Ne feledje, hogy a szöveges karakterláncot aposztróffal (’) kell kezdenie a nulla előtt, hogy az Excel utasítsa, hogy írja be az értéket karakterláncként.

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

wave wave wave wave wave