Eliminarea caracterelor inutile
Adesea, liniile din program conțin caractere spațiu inutile la sfârșitul sau la începutul liniei, care trebuie șterse, deoarece spațiile externe de conducere sau de sfârșit în șir pot provoca "probleme" în program.
În VBA, există trei funcții concepute pentru a elimina spațiile de conducere și de sfârșit dintr-un șir: LTrim, RTrim, Trim. Rețineți că aceste funcții nu schimbă efectiv șirul original, dar returnează o copie a șirului cu spații suplimentare eliminate.
Determinarea lungimii unui a
Lungimea liniei, de regulă, trebuie să știți când se formatează mesajele pentru utilizator sau când se formatează datele de șir introduse de procedură într-o foaie de lucru Excel sau într-un document Word. VBA utilizează funcția Len în acest scop. În lista următoare dintre semnele parantezelor și cuvântul există două spații.
Ar trebui să fie atent cu șiruri de lungime fixă. Deoarece șir de lungime fixă este întotdeauna aceeași lungime, funcția Len returnează întotdeauna lungimea șir declarat, indiferent de lungimea reală șir. De exemplu, în cazul în șirul StrokeName variabilă de lungime fixă, având o lungime de 15 caractere este de fapt cuvântul „Sun“, LEN (StrokeName) întoarce rezultatul 15. Pentru în acest caz, pentru a cunoaște lungimea efectivă a șirului (în cazul nostru - 6), utilizarea următoarea combinație de caracteristici: Len (Trim (StrokeName)).
Comparați și căutați șiruri de caractere
În VBA, există două funcții care vă ajută să comparați șiruri de caractere: StrComp, InStr.
Funcția StrComp
StrComp (String1, String2 [, Comparare])
String1, String2 - orice două expresii de șir care trebuie comparate.
Comparația este un argument opțional, poate fi oricare dintre următoarele constante predefinite (dacă este omisă, se folosește opțiunea Compare Compare):
- vbBinaryCompare - compararea binară a două linii;
- vbTextCompare - compararea textului a două linii;
- vbDatabaseCompare - utilizat numai în Microsoft Access.
Când se execută StrComp, se returnează una dintre următoarele valori:
- -1 dacă String1 este mai mic decât String2;
- 0 dacă String1 și String2 sunt egale;
- 1 dacă String1 este mai mare decât String2.
În lista de mai sus, în modul text, se compară două linii: "Șir implicit" și "Șir implicit". Rezultatul comparației este 1, adică "Șirul implicit" este mai mare decât "Șirul implicit".
Experimentați cu o varietate de șiruri pentru o mai bună înțelegere a funcționării funcției StrComp.
Funcția InStr
Funcția InStr face posibilă determinarea dacă o linie conține un alt șir.
StrComp ([Start,] String1, String2 [, Comparare])
String1, String2 - orice expresie validă de șir. Funcția verifică dacă String1 este în String2.
Comparația este un argument opțional, poate fi oricare dintre următoarele constante predefinite (dacă este omisă, se folosește opțiunea Compare Compare):
- vbBinaryCompare - compararea binară a două linii;
- vbTextCompare - compararea textului a două linii;
- vbDatabaseCompare - utilizat numai în Microsoft Access.
Start este un argument opțional, este o expresie numerică și indică poziția caracterului din String1, din care trebuie să înceapă verificarea.
InStr returnează un număr care indică poziția caracterului din String1 unde a fost găsit String2. Dacă InStr nu găsește String2 în String1, ea returnează 0. Dacă String1 (sau String2) este Null, funcția returnează și Null.
Împărțiți o linie
Uneori devine necesară ruperea liniei în părțile componente ale acesteia. În VBA, această sarcină este rezolvată de trei funcții: Stânga, Dreapta, Mid.
Funcția stânga
Stânga (String, Lungime)
String - orice expresie de șir validă.
Lungimea este orice valoare numerică.
Funcția returnează o copie a String-ului, începând cu primul caracter și incluzând numărul de caractere specificat de Lungime. Dacă Lungimea este un număr mai mare decât lungimea efectivă a Stringului, atunci întregul șir de expresie de șir este returnat.
Funcția dreapta
Dreapta (String, Lungime)
String - orice expresie de șir validă.
Lungimea este orice valoare numerică.
Funcția returnează o copie a String-ului, începând cu ultimul caracter și incluzând numărul de caractere specificat cu Lungimea de la dreapta la stânga. Dacă Lungimea este un număr mai mare decât lungimea efectivă a Stringului, atunci întregul șir de expresie de șir este returnat. Funcția Drept întotdeauna copiază caracterele de la capătul liniei până la începutul acesteia.
Funcția de mijloc
Mid (String, Start, [, Lungime])
String - orice expresie de șir validă.
Lungime, Start - orice valoare numerică.
Funcția Mid returnează o copie a String-ului, începând cu poziția de caractere din String care este specificată de argumentul Start. Argumentul opțional Lungime specifică numărul de caractere care trebuie copiate în Mid String. Dacă Start conține un număr mai mare decât lungimea reală a String, se returnează un șir gol.
Simboluri care nu pot fi introduse de la tastatură
Se întâmplă frecvent să introduceți un caracter pentru care nu există nici o tastă pe tastatură (de exemplu, un simbol al drepturilor de autor). O altă situație este când trebuie să includeți simbolul serviciului VBA în linie (cel mai frecvent caz este includerea citatelor duble).
Pentru a include caractere care nu pot fi introduse de la tastatură sau care au o semnificație specială pentru VBA, se folosește funcția Chr.
Caracterele reprezintă orice expresie numerică care este un cod valid pentru setul de caractere utilizat de calculator. Trebuie să fie un număr întreg de la 0 la 255.
Funcția Chr preia codul unui singur caracter ca argument și returnează un șir care conține caracterele corespunzătoare acestui cod. Această funcție a fost utilizată în listele de mai sus pentru a muta o linie atunci când mesajul este afișat pe ecranul Chr (13).
Deoarece caracterele folosite pentru a porni o nouă linie sunt foarte importante atunci când se formatează mesaje și alte date de șir manipulate prin proceduri VBA, există mai multe constante predefinite pentru aceste caractere, astfel încât nu este nevoie să folosiți funcția Chr:
- vbCr este caracterul retur de carriage. Echivalentul lui Chr (13)
- vbLf este un caracter de offset dintr-o singură linie. Echivalentul lui Chr (10)
- vbCrLf este un retur de transport + caracterul offset per linie. Echivalentul lui Chr (13) + Chr (10)
- vbTab este un caracter tab. Echivalentul lui Chr (9)
Formatarea valorilor datelor
Foarte adesea, formatul datelor de la ieșirea programului pentru un motiv sau altul nu ne convine. Această sarcină este rezolvată de funcția Format.
Funcția Format VBA este identică cu funcția Format din Excel și utilizează aceleași substituții pentru umplerea datelor.
Format (expresie [, Format [, Firstdayofweek [, Firstweekofyear]]])
Expresie - orice expresie validă (argument obligatoriu).
Format - o expresie validă a unui format numit sau definit de utilizator.
Prima zi a săptămânii este o constantă care determină prima zi a săptămânii.
Firstweekofyear este o constantă care determină prima săptămână a anului.
Pentru a utiliza funcția Format, trebuie să specificați un format predefinit. sau să creați o imagine cu un anumit format. folosind substituenți.