Funció de divisió VBA (exemples) | Com es divideixen les cadenes a Excel VBA?

Què és la funció de divisió VBA a Excel?

Funció de divisió a VBA és una funció de cadena molt útil que s’utilitza per dividir cadenes en diverses subcadenes basades en un delimitador proporcionat a la funció i un mètode de comparació, també hi ha altres funcions de cadenes que converteixen una cadena en subcadena, però la funció dividida pot dividir una cadena en més de una subcadena.

Al full de treball normal, la funció ESQUERRA, les funcions MID i RIGHT en excel s’utilitzen com a funcions de text en excel per extreure la part de la frase. Per exemple, l'extracció del primer nom, el segon nom i el cognom són els escenaris habituals que hem vist. Però a VBA tenim la funció més versàtil anomenada SPLIT, que us farà una feina similar. SPLIT és una funció integrada a Excel VBA que pot dividir la frase proporcionada en funció del delimitador. Per exemple, si voleu dividir l'adreça electrònica en diferents parts, l'element comú de l'adreça electrònica és "@" en tots els identificadors de correu electrònic, de manera que "@" es converteix en delimitador aquí.

Funció de cadena dividida VBA

Com totes les altres funcions, split també té la seva pròpia sintaxi. A continuació es mostren els paràmetres de la funció Excel VBA Split string.

  • Valor o expressió: Això res més que el valor real que intentem dividir. Per exemple, si voleu dividir el nom i el cognom, el nom complet és el valor aquí.
  • [Delimitador]: Quin és l’element comú per dividir el valor o l’expressió? A l’identificador de correu electrònic, l’element "@" és l'element comú, i la coma de l'adreça (,) és l'element comú. Si no feu cas d'això, considera el caràcter d'espai com el valor per defecte.
  • [Límit]: Quantes subcadenes voleu del valor o expressió que heu proporcionat. Per exemple, si el valor és "El meu nom és Excel", si en proporcioneu 3 com a límit, es mostrarà el resultat en tres línies com "El meu", "el nom", "és Excel".
  • [Compareu]: Com que no fem servir l'argument de comparació, ometeu aquest argument opcional.

A les següents seccions de l'article, veurem com utilitzar la funció SPLIT a Excel VBA pràcticament.

Exemples de funció de cadena dividida VBA

A continuació es mostren els exemples pràctics de la funció de divisió a Excel VBA.

Podeu descarregar aquesta plantilla Excel de funció dividida VBA aquí: plantilla Excel de funció dividida VBA

Exemple 1: divideix la frase

Dividir torna el resultat a la matriu que començarà a partir de 0. Totes les matrius són a partir de 0 i no de 1.

Suposem que teniu la paraula "El meu nom és Excel VBA" a la cel·la A1.

Ara voleu dividir aquesta frase en trossos com "El meu", "Nom", "és", "Excel", "VBA". Mitjançant la funció Excel VBA SPLIT String podem retornar aquest resultat.

Pas 1: Inicieu la macro amb el nom.

Codi:

 Subdividir_Exemple1 () Finalitzar Sub  Pas 2: Declareu tres variables.

Codi:

 Sub Split_Example1 () Dim MyText As String Dim i As integer Dim MyResult () As String End Sub 

Pas 3: Ara, per a la variable definida, El meu text assigna la paraula "El meu nom és Excel VBA".

Codi:

 Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String MyText = "El meu nom és Excel VBA" End Sub 

Pas 4: Ara, per a la variable El meu resultat, apliqueu la funció de cadena dividida VBA.

Codi:

 Sub Split_Example1 () Dim MyText As String Dim i As integer Dim MyResult () As String MyText = "El meu nom és Excel VBA" MyResult = Split (End Sub 

Pas 5: L’expressió és el nostre valor de text. Com que ja hem assignat el nostre valor de text a la variable El meu text, introduïu aquest argument aquí.

Codi:

 Sub Split_Example1 () Dim MyText As String Dim i As integer Dim MyResult () As String MyText = "El meu nom és Excel VBA" MyResult = Split (MyText) End Sub 

Nota: Com ara, ignora tots els altres paràmetres.

Pas 6: Per tant, ara El meu resultat conté aquest resultat dividit. Com he dit anteriorment a la publicació, la funció dividida emmagatzema el resultat com una matriu, així que aquí

  • El meu resultat (0) = "El meu"
  • El meu resultat (1) = "Nom"
  • El meu resultat (2) = "és"
  • El meu resultat (3) = "Excel"
  • El meu resultat (4) = "VBA"

Tot i que aquest codi no té cap impacte en iniciar la funció SPLIT, podem utilitzar aquest codi.

Exemple 2: cadena VBA SPLIT amb funció UBOUND

Per tal d’emmagatzemar el resultat de la funció SPLIT, podem utilitzar la funció vba UBOUND juntament amb la funció SPLIT.

UBOUND retornarà la longitud màxima de la matriu. A l'exemple anterior, la longitud màxima de la matriu era de 5.

Agafeu la mateixa paraula "El meu nom és Excel VBA". Dividim aquesta paraula i emmagatzemem-la a partir de la cel·la A1.

Pas 1: Continuem des d’on vam deixar l’exemple anterior.

Pas 2: Ara sol·liciteu el següent bucle a VBA de 0 a la longitud màxima de la matriu, és a dir, UBOUND.

El motiu pel qual hem començat de zero perquè SPLIT emmagatzemarà el resultat de zero, no d’1.

Pas 3: Ara apliqueu la propietat VBA CELLS i emmagatzemeu el resultat.

Codi:

Cel·les (i + 1, 1). Valor = El meu resultat (i)

Pas 4: Executeu aquest codi, tindríem valors dividits.

Codi complet:

 Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String MyText = "El meu nom és Excel VBA" MyResult = Divideix (MyText) Per a i = 0 a UBound (MyResult) cel·les (i + 1, 1) .Valor = MyResult (i) Next i End Sub 

Torna el recompte de paraules

També podem mostrar el nombre total de paraules del valor proporcionat. Utilitzeu el codi següent per mostrar el nombre total de recompte de paraules. Codi:

 Sub Split_Example2 () Dim MyText As String Dim i As integer Dim MyResult () As String MyText = "El meu nom és Excel VBA" MyResult = Split (MyText) i = UBound (MyResult ()) + 1 MsgBox "El nombre total de paraules és" & I End Sub 

Copieu i enganxeu el codi VBA anterior i executeu-lo, el quadre de missatge retornarà el resultat.

Coses que cal recordar

  • Si el delimitador no es subministra, SPLIT considera automàticament el delimitador com a espai.
  • Si voleu dividir excepte l'espai, heu d'especificar el delimitador entre cometes dobles.
  • SPLIT emmagatzema el resultat com a resultats de matriu.
  • La funció UBOUND retorna la longitud màxima de la matriu.