VBA stringi andmetüüp (muutuja)

Stringi muutuja tüüp

Stringi andmetüüp on VBA -s üks levinumaid andmetüüpe. See salvestab teksti “stringid”.

Muutuja String muutuja deklareerimiseks kasutage Dim Statement (lühend Dimension):

1 Hämarda strName kui string

Muutujale väärtuse määramiseks kasutage võrdusmärki:

1 strName = "Fred Smith"

Selle protseduuri lisamine näeb välja selline:

12345678 Sub strExample ()'kuulutage stringHämarda strName stringina'täitke stringstrName = "Fred Smith"'näidake sõnumikastMsgBoxi strnameEnd Sub

Kui käivitate ülaltoodud koodi, kuvatakse järgmine sõnumikast.

Fikseeritud stringide muutuja

Stringimuutujaid on tegelikult kahte tüüpi - fikseeritud ja muutuv.

Stringmuutuja „muutuja” (näidatud eelmises näites) võimaldab teie stringil olla mis tahes pikkust. See on kõige tavalisem.

Stringi muutuja „fikseeritud” määrab stringi suuruse. Fikseeritud string võib sisaldada kuni 65 400 tähemärki.

1 Dim strName kui string *20

Fikseeritud muutuja määratlemisel lukustatakse muutuja märkide arv paika, isegi kui kasutate vähem tähemärke.

Pange tähele tühikuid alloleval graafikul - muutujal on kohahoidjad ülejäänud stringi märkide jaoks, kuna „Fred Smith” on alla 20 tähemärgi.

Kui aga olete stringi deklareerinud ilma pikkust täpsustamata, siis sisaldab string ainult nii palju märke, kui talle edastatakse.

Stringi muutuja deklareerimine moodulil või globaalsel tasandil

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

Selle asemel saate Stringi muutujad deklareerida mooduli 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 string

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

Kui aga kasutate stringi muutuja deklareerimiseks avalikku märksõna, siis viga ei ilmne ja protseduur toimiks ideaalselt.

Stringina salvestatud väärtuste teisendamine

Mõnikord võib Excelis olla väärtusi, mis on salvestatud tekstina - näiteks olete importinud CSV -faili, mis võib numbrite asemel tuua teksti.

Pange tähele, et A1 väärtus on vasakule joondatud, mis näitab teksti väärtust.

Võite kasutada a Funktsioon VBA saab kasutada nende numbrite teisendamiseks tekstiks

12345678 Sub ConvertValue ()'täitke stringstrQty = Vahemik ("A1")'täitke topelt stringigadblQty = strQty'täitke vahemik numbrigaVahemik ("A1") = dblQtyEnd Sub

Kui olete koodi käivitanud, liigub number paremale, mis näitab, et see on nüüd numbrina salvestatud.

See on eriti kasulik siis, kui silmate läbi suure hulga lahtreid.

123456789101112131415 Sub ConvertValue ()Dim strQty kui string, dblQty As DoubleDim rw As Integer, i As Integer'loendage teisendatavad readrw = vahemik ("A1", vahemik ("A1"). lõpp (xlDown)). Ridad. arv'loksutage lahtrid läbi ja teisendage igaüks neist arvuksI = 0 kuni rw - 1'täitke stringstrQty = Vahemik ("A1"). Nihe (i, 0)'täitke topelt stringigadblQty = strQty'täitke vahemik numbrigaVahemik ("A1"). Nihe (i, 0) = dblQtyEdasi iEnd Sub

Selle tulemusel teisendatakse kõik lahtrid numbriteks

Kas olete väsinud VBA koodinäidete otsimisest? Proovige AutoMacrot!

Teisenda väärtustena salvestatud string

Sarnaselt võivad olla väärtused, mis peate stringist väärtuseks teisendama - näiteks kui vajate telefoninumbri eesolevat nulli.

123456789101112131415 Alamkonverteerimisstring ()Dim strPhone kui string, dblPhone kui topeltDim rw As Integer, i As Integer'loendage teisendatavad readrw = vahemik ("A1", vahemik ("A1"). lõpp (xlDown)). Ridad. arv'loksutage lahtrid läbi ja teisendage igaüks neist arvuksI = 0 kuni rw - 1'täitke stringdblPhone = Vahemik ("A1"). Nihe (i, 0)'täitke topelt stringigastrPhone = "'0" ja dblPhone'täitke vahemik numbrigaVahemik ("A1"). Nihe (i, 0) = strphoneEdasi iEnd Sub

Pange tähele, et tekstistringi peab alustama apostroofiga (’) enne nulli, et käskida Excelil sisestada väärtus stringina.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave