Șir de tip variabil
Tipul de date String este unul dintre cele mai comune tipuri de date din VBA. Stochează „șiruri” de text.
Pentru a declara o variabilă String variabilă, utilizați declarația Dim (prescurtare pentru Dimension):
1 | Dim strName ca Șir |
Pentru a atribui o valoare unei variabile, utilizați semnul egal:
1 | strName = "Fred Smith" |
Punerea acestui lucru într-o procedură arată astfel:
12345678 | SubstrExample ()'declara șirulDim strName ca șir'populează șirulstrName = "Fred Smith"'arată caseta de mesajeMsgBox strnameSfârșitul Sub |
Dacă rulați codul de mai sus, va fi afișată următoarea casetă de mesaj.
Variabila de șir fix
Există de fapt 2 tipuri de variabile șir - fixe și variabile.
Variabila de șir „variabilă” (prezentată în exemplul anterior) permite șirului dvs. să aibă orice lungime. Acest lucru este cel mai frecvent.
Variabila șir „fix” definește dimensiunea șirului. Un șir fix poate conține până la 65.400 de caractere.
1 | Dim strName ca șir * 20 |
Când definiți o variabilă fixă, numărul de caractere din variabilă este blocat, chiar dacă utilizați mai puține caractere.
Observați spațiile din graficul de mai jos - variabila are suporturi pentru restul de caractere din șir, deoarece „Fred Smith” are mai puțin de 20 de caractere.
Cu toate acestea, dacă ați declarat un șir fără să specificați lungimea, atunci șirul va conține doar atâtea caractere cât îi sunt transmise.
Declarați șirul variabil la nivel de modul sau global
În exemplul anterior, ați declarat variabila String într-o procedură. Variabilele declarate cu o procedură pot fi utilizate numai în cadrul acestei proceduri.
În schimb, puteți declara variabile String la nivel de modul sau global.
Nivelul modulului
Nivelul modulului variabilele sunt declarate în partea de sus a modulelor de cod cu Dim afirmație.
Aceste variabile pot fi utilizate cu orice procedură din acel modul de cod.
Nivel global
La nivel global variabilele sunt, de asemenea, declarate în partea de sus a modulelor de cod. Cu toate acestea, în loc să utilizați fișierul Dim declarație, utilizați Public declarație pentru a indica faptul că variabila șir este disponibilă pentru a fi utilizată în întregul Proiect VBA.
1 | StrName public ca Șir |
Dacă ați declarat variabila șir la un nivel de modul și ați utiliza un alt modul, va apărea o eroare.
Cu toate acestea, dacă utilizați cuvântul cheie public pentru a declara variabila șir, eroarea nu va apărea și procedura va rula perfect.
Convertiți valorile stocate ca șir
Este posibil să existe un moment în care să aveți valori în Excel care sunt stocate ca text - de exemplu, este posibil să fi importat un fișier CSV care ar fi putut aduce text în loc de numere.
Rețineți că valoarea din A1 este aliniată la stânga, indicând o valoare text.
Puteți utiliza un Funcția VBA poate fi folosit pentru a converti aceste numere în text
12345678 | SubConvertireValoare ()'populează șirulstrQty = Range ("A1")'populează dublul cu șiruldblQty = strQty'populează intervalul cu numărulGama ("A1") = dblQtySfârșitul Sub |
Odată ce ați rulat codul, numărul se va deplasa la dreapta, indicând că acum este stocat ca număr.
Acest lucru este deosebit de util atunci când parcurgeți o gamă largă de celule.
123456789101112131415 | SubConvertireValoare ()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'numărați rândurile de convertitrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'buclați prin celule și convertiți-le într-un numărPentru i = 0 Pentru a rw - 1'populează șirulstrQty = Range ("A1"). Offset (i, 0)'populează dublul cu șiruldblQty = strQty'populează intervalul cu numărulGama ("A1"). Offset (i, 0) = dblQtyApoi euSfârșitul Sub |
Rezultatul va fi că toate celulele sunt apoi convertite în numere
V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!
Conversia șirului stocat ca valori
În mod similar, ar putea exista valori pe care trebuie să le convertiți dintr-un șir într-o valoare - de exemplu, dacă aveți nevoie de un zero în fața unui număr de telefon.
123456789101112131415 | Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw As Integer, i As Integer'numărați rândurile de convertitrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'buclați prin celule și convertiți-le într-un numărPentru i = 0 Pentru a rw - 1'populează șiruldblPhone = Range ("A1"). Offset (i, 0)'populează dublul cu șirulstrPhone = "'0" & dblPhone'populează intervalul cu numărulRange ("A1"). Offset (i, 0) = strphoneApoi euSfârșitul Sub |
Rețineți că trebuie să începeți șirul de text cu un apostrof (‘), înainte de zero pentru a spune Excel să introducă valoarea ca șir.