VBA divideix la cadena en matriu | Com es divideix la cadena en matriu a Excel VBA?
Excel VBA divideix la cadena en matriu
Una cadena és una col·lecció de caràcters units, quan aquests caràcters es divideixen i s’emmagatzemen en una variable, aquesta variable es converteix en una matriu per a aquests caràcters i el mètode que fem servir per dividir una cadena per convertir-la en una matriu és mitjançant la funció SPLIT a vba que divideix la cadena en una cadena unidimensional.
Igual que els fulls de treball a VBA, també tenim funcions per tractar els valors de cadena o text. Coneixem molt les operacions de cadena, com ara extreure el nom, cognoms, segon nom, etc. Però, què tal la idea de dividir el valor de la cadena en matrius a VBA? Sí, ho heu escoltat correctament, podem dividir la frase de la cadena en una matriu mitjançant la codificació VBA i, en aquest article especial, us mostrarem com dividir la cadena en una matriu a Excel VBA.
Què és la divisió de la cadena en una matriu?
Permeteu-me aclarir-ho primer, "Cadena en matriu" no és altra cosa que "diferents parts de la frase o cadena es dividiran en diverses parts". Per exemple, si la frase és "Bangalore és la capital de Karnataka", cada paraula és una matriu diferent.
Per tant, com es divideix aquesta frase en la matriu és el tema d’aquest article.
Com convertir la cadena dividida en una matriu a Excel VBA?
Per convertir la cadena dividida en una matriu a VBA tenim una funció anomenada "SPLIT". Aquesta és una funció VBA que realitza la tasca de dividir el valor de la cadena subministrada a diferents parts en funció del delimitador proporcionat.
Per exemple, si la frase és "Bangalore és la capital de Karnataka", l'espai és el delimitador entre cada paraula.
A continuació es mostra la sintaxi de la funció SPLIT.
- Valor o expressió: Aquest és el valor de la cadena o del text que estem intentant convertir a la matriu segregant cada part de la cadena.
- [Delimitador]: Això no és res més que les coses comunes que separen cada paraula de la cadena. A la nostra frase "Bangalore és la capital de Karnataka", cada paraula està separada per caràcters espacials, de manera que el nostre delimitador és l'espai aquí.
- [Límit]: El límit no és res més que quantes parts volem com a resultat. Per a un exemple de la frase "Bangalore és la capital de Karnataka", tenim set parts, si només en necessitem tres, obtindrem la primera part com a "Bangalore", la segona com a "és" i la tercera part com a resta de la frase és a dir, "la capital de Karnataka".
- [Compareu]: Això no s’utilitza el 99% del temps, així que no el toquem en aquest moment.
Exemple 1
D’acord, ara anem a veure exemples pràctics.
Pas 1: Definiu la variable VBA per mantenir el valor de la cadena.
Codi:
Sub String_To_Array () Dim StringValue As String End Sub
Pas 2: Per a aquesta variable assigneu la cadena "Bangalore és la capital de Karnataka".
Codi:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore és la capital de Karnatka" End Sub
Pas 3: A continuació, definiu una variable més que pugui contenir cada part del valor de la cadena anterior. En aquest sentit, hem de tenir present que, ja que la frase té més d'una paraula, hem de definir la variable com a "Matriu" per contenir més d'un valor.
En aquest cas, tenim 7 paraules a la cadena, de manera que definiu la matriu de la següent manera.
Codi:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore és la capital de Karnatka" Dim SingleValue () As String End Sub
Ara, per a aquesta variable de matriu, utilitzarem la funció SPLIT per dividir la cadena en una matriu a Excel VBA.
Codi:
Sub String_To_Array () Dim StringValue As StringValue = "Bangalore és la capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Sub Sub
L’expressió és el nostre valor de cadena, és a dir, la variable ja conté el valor de la cadena, de manera que introduïu només el nom de la variable.
El delimitador en aquesta cadena hi ha caràcter espacial, de manera que proporcioneu el mateix
Codi:
Sub String_To_Array () Dim StringValue As StringValue = "Bangalore és la capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Sub Sub
A partir d'ara, deixeu altres parts de la funció SPLIT.
La funció SPLIT divideix el valor de la cadena en 7 peces cada paraula segregada a costa del caràcter d’espai. Ja que hem declarat la variable "SingleValue" com a matriu podem assignar tots els 7 valors a aquesta variable.
Podem escriure el codi de la següent manera.
Codi:
Sub String_To_Array () Dim StringValue As StringValue = "Bangalore és la capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub
Executeu el codi i vegeu el que obtenim al quadre de missatges.
A partir d’ara, podem veure la primera paraula, és a dir, "Bangalore", per mostrar més paraules, i podem escriure el codi de la següent manera.
Codi:
Sub String_To_Array () Dim StringValue As StringValue = "Bangalore és la ciutat capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & SingleVal (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub
Ara executeu el codi i vegeu què obtenim al quadre de missatges.
Totes les paraules s'han dividit en matrius.
Exemple 2
Ara imagineu una situació d’emmagatzemar aquests valors a les cel·les, és a dir, cada paraula en una cel·la independent. Per a això, hem d’incloure el bucle FOR NEXT a VBA.
El codi següent inserirà cada paraula en cel·les separades.
Sub String_To_Array1 () Dim StringValue As StringValue = "Bangalore és la capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k Com enter Per k = 1 a 7 cel·les (1, k) .Value = SingleValue (k - 1) Next k End Sub
Això inserirà cada paraula tal com es mostra a la imatge següent.
Coses que cal recordar
- La matriu i els bucles s’utilitzen junts per dinamitzar el codi.
- La funció SPLIT requereix un delimitador comú que separa cada paraula de la frase.
- La longitud de la matriu comença des de zero, no des de 1.