VBA -strengdatatype (dim variabel)

Streng Variabel Type

Stringdatatypen er en af ​​de mest almindelige datatyper i VBA. Det gemmer "strenge" med tekst.

For at deklarere en variabel strengvariabel bruger du Dim Statement (forkortelse for Dimension):

1 Dim strName som streng

For at tildele en værdi til en variabel bruger du lighedstegnet:

1 strName = "Fred Smith"

At sætte dette i en procedure ser sådan ud:

12345678 Sub strExample ()'erklærer strengenDim strName som streng'udfyld strengenstrName = "Fred Smith"'vis meddelelsesboksenMsgBox strnameAfslut Sub

Hvis du kører koden ovenfor, vises følgende meddelelsesboks.

Variabel med fast streng

Der er faktisk 2 typer strengvariabler - faste og variable.

"Variabel" strengvariabel (vist i det foregående eksempel) tillader din streng at have en hvilken som helst længde. Dette er mest almindeligt.

Den "faste" strengvariabel definerer strengens størrelse. En fast streng kan indeholde op til 65.400 tegn.

1 Dim strName som streng *20

Når du definerer en fast variabel, låses antallet af tegn i variablen på plads, selvom du bruger færre tegn.

Bemærk mellemrummene i grafikken herunder - variablen har pladsholdere til resten af ​​tegnene i strengen, da ‘Fred Smith’ er mindre end 20 tegn.

Men hvis du har erklæret en streng uden at angive længden, vil strengen kun indeholde lige så mange tegn, som der sendes til den.

Deklarere strengvariabel på modul eller globalt niveau

I det foregående eksempel erklærede du strengvariablen inden for en procedure. Variabler, der er angivet med en procedure, kan kun bruges inden for denne procedure.

I stedet kan du erklære strengvariabler på modulet eller globalt niveau.

Modulniveau

Modulniveau variabler erklæres øverst i kodemodulerne med Svag udmelding.

Disse variabler kan bruges med enhver procedure i det pågældende kodemodul.

Globalt niveau

Globalt niveau variabler deklareres også øverst i kodemodulerne. Men i stedet for at bruge Svag erklæring, bruger du Offentlig erklæring for at angive, at strengvariablen er tilgængelig til brug i hele dit VBA -projekt.

1 Offentlig strName som streng

Hvis du erklærede strengvariablen på et modulniveau og bruges i et andet modul, ville der opstå en fejl.

Men hvis du bruger det offentlige søgeord til at deklarere strengvariablen, ville fejlen ikke opstå, og proceduren ville køre perfekt.

Konverter værdier gemt som streng

Der kan være et tidspunkt, hvor du har værdier i Excel, der er gemt som tekst - for eksempel har du muligvis importeret en CSV -fil, som muligvis har bragt tekst ind i stedet for tal.

Bemærk, at værdien i A1 er venstrejusteret, hvilket angiver en tekstværdi.

Du kan bruge en VBA funktion kan bruges til at konvertere disse tal til tekst

12345678 Sub ConvertValue ()'udfyld strengenstrQty = Range ("A1")'udfyld dobbelten med strengendblQty = strQty'udfyld området med talletOmråde ("A1") = dblQtyAfslut Sub

Når du kører koden, flyttes nummeret til højre, hvilket angiver, at det nu er gemt som et nummer.

Dette er især nyttigt, når du går gennem et stort udvalg af celler.

123456789101112131415 Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'tæl de rækker, der skal konverteresrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'loop gennem cellerne og konverter hver til et talFor i = 0 Til rw - 1'udfyld strengenstrQty = Range ("A1"). Offset (i, 0)'udfyld den dobbelte med strengendblQty = strQty'udfyld området med nummeretOmråde ("A1"). Offset (i, 0) = dblQtyNæste iAfslut Sub

Resultatet bliver, at alle cellerne derefter konverteres til tal

Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!

Konverter streng, der er gemt som værdier

På samme måde kan der være værdier, som du skal konvertere fra en streng til en værdi - for eksempel hvis du har brug for et førende nul på et telefonnummer.

123456789101112131415 Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw As Integer, i As Integer'tæl de rækker, der skal konverteresrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'loop gennem cellerne og konverter hver til et talFor i = 0 Til rw - 1'udfyld strengendblPhone = Range ("A1"). Offset (i, 0)'udfyld dobbelten med strengenstrPhone = "'0" & dblPhone'udfyld området med nummeretOmråde ("A1"). Offset (i, 0) = strphoneNæste iAfslut Sub

Bemærk, at du skal begynde tekststrengen med en apostrof (‘) før nul for at fortælle Excel at indtaste værdien som streng.

wave wave wave wave wave