VBA Replace String | Com substituir el text en una cadena mitjançant VBA?

Excel VBA Replace String

Substitueix tant la funció del full de treball com la funció VBA. Aquesta funció ens ajuda a substituir la paraula concreta de la cadena per una altra. Funciona de manera similar a la funció Substitut a VBA.

Tot i tractar els valors de les dades de text o de cadenes de prova, és obvi substituir o substituir alguna cosa per una altra cosa, unir dues dades de cel·les en una o dividir les dades d'una cel·la a diverses coses. Totes aquestes són tasques habituals que fem dia a dia al nostre lloc de treball.

Llavors, com substituïm una paraula de la cadena per una altra? Per exemple, si la cadena és "L'Índia és un país en desenvolupament i l'Índia al país asiàtic", a partir d'aquesta cadena hem de substituir la paraula "Índia" i canviar-la per "Bharath".

Això és possible mitjançant la funció Substitueix. En aquest article, us mostrarem com substituir les cadenes en la codificació VBA.

Funció de substitució

  • Expressió: Això no és res més que el valor de la cadena original a partir del qual intentem substituir alguna cosa per alguna cosa. Per exemple, a continuació, es mostra la cadena d’expressions: “L’Índia és un país en desenvolupament i l’Índia al país asiàtic”
  • Cerca cadena: Quina és la cadena que intentem substituir. Per exemple, a la Expressió string intentem substituir la paraula "Índia".
  • Substitueix la cadena: Quina és la cadena substitutiva que substituïm per Cerca la cadena amb? Per tant, en aquest cas, intentem substituir la paraula "Índia" per "Bharath".
  • [Començar]: Aquest és un paràmetre opcional. A la cadena anterior (Expressió) tenim dues paraules "Índia", de manera que des de quina posició de la Cerca la cadena hem d’iniciar el procés de substitució. Per exemple, si diem 2, començarà a substituir la paraula "Índia" a partir de la segona posició.
  • [Recompte]: Si el Cerca la cadena que apareixen diverses vegades a Expressió a continuació, quantes paraules hem de substituir.

Per exemple, si la paraula "Índia" apareix cinc vegades i si proporcioneu el compte com a 3, substituirà només les primeres 3 paraules "Índia".

Com substituir el text en una cadena mitjançant VBA?

Podeu descarregar aquesta plantilla Excel de cadena VBA Replace String aquí: plantilla Excel VBA Replace String Excel

Exemple 1

Ara intentarem substituir la paraula "Índia" per "Bharath" del valor de la cadena següent.

"L'Índia és un país en desenvolupament i l'Índia al país asiàtic"

Primer, inicieu el procediment de macros excel ara.

Codi:

 Sub Substitueix_Exemple () Final Sub 

Definiu la variable VBA com a Cadena.

Codi:

 Sub Replace_Example () Dim NewString As String End Sub 

En aquesta variable, mostrarem un valor de cadena nou després de substituir la paraula "Índia" per "Bharath". Per a aquesta variable, obriu la funció Substitueix.

El primer argument d'aquesta funció és "Expressió", és a dir, a partir de quina cadena intentem substituir una paraula, així que copieu i enganxeu la cadena "L'Índia és un país en desenvolupament i l'Índia al país asiàtic".

El següent argument és "Cerca cadena", és a dir, quina paraula hem de substituir, és a dir, "Índia".

El següent argument és "Substitueix la cadena", és a dir, amb quina cadena hem de substituir la paraula "Índia", és a dir, "Bharath".

D'acord, a partir d'ara ignora els arguments restants. Ara mostreu el resultat al quadre de missatges.

Codi:

 Sub Replace_Example () Dim NewString As String NewString = Substitueix ("L'Índia és un país en desenvolupament i l'Índia és el país asiàtic", "Índia", "Bharath") MsgBox NewString End Sub 

Executem el codi amb la tecla F5 o manualment i vegem el resultat de la nova cadena.

Ok, mireu el resultat anterior, allà on tinguéssim la paraula "Índia", s'ha substituït per la paraula "Bharath".

Exemple 2

Ara veurem com utilitzar el mateix codi amb variables. Mireu el codi següent.

Codi:

 Sub Replace_Example1 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "L'Índia és un país en desenvolupament i l'Índia és el país asiàtic" FindString = "Índia" ReplaceString = "Bharath" NewString = Substitueix (MyString , FindString, ReplaceString) MsgBox NewString End Sub 

Al codi anterior, he declarat tres variables addicionals.

 Dismineix MyString com a cadena Disminueix FindString com a cadena Dim Substitueix la cadena com a cadena 

Per a aquestes variables he assignat valors, en lloc de proporcionar el fitxer Cadena d’expressió, Cerca de cadena i Substitueix la cadena subministrarem només variables a la funció Substitueix.

Aquest codi també dóna el mateix resultat, però l'única diferència és que hem utilitzat variables en lloc de subministrament directe de valors a la funció.

Exemple 3

Suposem que voleu substituir la paraula "Índia" només des de la segona posició i que hem d'utilitzar el paràmetre de funció Substitueix ["Començar"]. Mireu el codi següent per obtenir informació.

Codi:

 Sub Replace_Example2 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "L'Índia és un país en desenvolupament i l'Índia és el país asiàtic" FindString = "Índia" ReplaceString = "Bharath" NewString = Substitueix (MyString , FindString, ReplaceString, Start: = 34) MsgBox NewString End Sub 

Només una cosa addicional que hem afegit del codi anterior és el paràmetre "Inici" com a 34. Ara executeu el codi i veureu el resultat.

Ara només podem veure la cadena després del 34è caràcter de la cadena amb "India" substituint per "Bharath".

Exemple # 4

Ara, per exemple, si volem substituir només la primera ocurrència de la paraula "Índia" per "Bharath", hem d'utilitzar ["Compta"] paràmetre de la funció Substitueix.

A continuació es mostra el codi per a vostè.

Codi:

 Sub Replace_Example3 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "L'Índia és un país en desenvolupament i l'Índia és el país asiàtic" FindString = "Índia" ReplaceString = "Bharath" NewString = Substitueix (MyString , FindString, ReplaceString, Count: = 1) MsgBox NewString End Sub 

Executeu el codi manualment o mitjançant la tecla F5 i vegeu el resultat.

Com podeu veure més amunt, només ha substituït la primera ocurrència de la paraula "Índia" per "Bharath" i la segona instància continua sent la mateixa.

Coses que cal recordar aquí

  • Replace és una família de funcions de cadena a VBA.
  • A VBA, la funció de substitució reemplaça totes les paraules subministrades per una cadena substituïda si no s’especifica el paràmetre count.
  • El paràmetre d'inici suprimirà el nombre de caràcters subministrats i mostrarà el resultat restant.