Deze zelfstudie laat zien hoe u de functie VBA vervangen kunt gebruiken om tekstreeksen te vervangen.
Functie vervangen
De VBA Replace-functie retourneert een string, met substituties. Met het gebruik van optionele parameters kan de nieuwe string beginnen op de positie gespecificeerd door start en eindigen aan het einde van de originele string.
VBA Vervang een subtekenreeks
De VBA-functie Vervangen kan worden gebruikt om elke gevonden substring te vervangen, in elk deel dat wordt gevonden.
12345678910111213141516 | Sub VervangVoorbeeld_1()MsgBox Replace("ABCABCABC", "A", "!")'Resultaat is: "!BC!BC!BC"MsgBox Replace ("Ik hou van roze, rood en zwart", "roze", "paars")'Resultaat is: 'Ik hou van paars, rood en zwart'MsgBox Replace("A, B, C, A, B, C, A, B, C", ", ", ",")'Resultaat is: "ABCABCABC"MsgBox Replace("ABCABCABC", "ABC", "!")'Resultaat is: "!!!"MsgBox Replace("ABCABCABC", "ABc", "!")'Resultaat is: "ABCABCABC"MsgBox Replace("ABCABCABC", "ZBC", "!")'Resultaat is: "ABCABCABC"Einde sub |
VBA Vervang startpositie
De VBA-functie Vervangen kan worden gebruikt om elke gevonden substring te vervangen, in elk deel dat wordt gevonden. Als we een startpositie toewijzen, zou het resultaat het deel van de originele string zijn na dat startpunt.
12345678910111213 | Sub VervangVoorbeeld_2()MsgBox Replace("ABCABCABC", "A", "123") 'Resultaat is: "123BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 2) 'Resultaat is: "BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 7) 'Resultaat is: "123BC"MsgBox Replace("ABCABCABC", "A", "123", 8) 'Resultaat is: "BC"MsgBox Replace("ABCABCABC", "ABC", "!@") 'Resultaat is: "!@!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Resultaat is: "BC!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Resultaat is: "C!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Resultaat is: "!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Resultaat is: "BC"Einde sub |
VBA Slechts een paar keer vervangen
De VBA-functie Vervangen kan worden gebruikt om elke gevonden substring te vervangen, in elk deel dat wordt gevonden. We kunnen optioneel beslissen hoeveel voorvallen moeten worden vervangen.
123456789101112 | Sub VervangVoorbeeld_3()MsgBox Replace("ABCABCABC", "A", "12") 'Resultaat is: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Resultaat is: "12BCABCABC"MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Resultaat is: "12BC12BCABC"MsgBox Replace("ABCABCABC", "A", "12", , 3) 'Resultaat is: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Resultaat is: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", 3, 1)'Resultaat is: "C12BCABC"'We hebben A vervangen door 12, 1 keer vanaf positie 3 van de originele snaar.Einde sub |
VBA Vervang hoofdlettergevoeligheid
VBA Replace-functie is standaard hoofdlettergevoelig. U kunt dat gedrag wijzigen in hoofdletterongevoelig met behulp van een optionele parameter (vbTekstVergelijken). In dat geval moet u ook de startpositie van de zoekopdracht definiëren.
12345678910111213 | Sub VervangVoorbeeld_4()MsgBox Replace("ABcABCABc", "ABc", "12")'Resultaat is: "12ABC12"MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)'Resultaat is: "121212"'Als we vbTextCompare gebruiken, moeten we de 2 andere optionele argumenten toevoegen:'begin en tel'MsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)'Resultaat is: "cABC12ABc"'Vanuit positie 3 begonnen en maar 1 keer ABC vervangen.Einde sub |
U kunt ook een hoofdletterongevoelige Vervanging uitvoeren door Option Compare Text toe te voegen aan de bovenkant van uw module:
1 | Optie Tekst vergelijken |
VBA Vervang dubbele aanhalingstekens
De VBA-functie Vervangen kan de dubbele aanhalingstekens vervangen die worden gebruikt om het begin en einde van een tekenreeks af te bakenen.
De VBA Chr-functie kan een teken van zijn nummer in de tekenset retourneren.
1 | MsgBox Chr(34) 'Resultaat is: " |
Of
1 | MsgBox Chr(64) 'Resultaat is: @ |
Dubbele aanhalingstekens kunnen worden gebruikt binnen de VBA-functie Vervangen met behulp van """" of VBA-functie Chr(34).
12345678910111213 | Sub VervangVoorbeeld_5()Dim StrEx As StringStrEx = "AB""AB"""MsgBox StrEx 'Resultaat is: AB"AB"MsgBox Replace(StrEx, Chr(34), "12")'Resultaat is: AB12AB12'MsgBox Replace(StrEx, """", "DQ")'Resultaat is: "ABDQABDQ"Einde sub |
VBA Vervang breuklijn in cel
De VBA-functie Vervangen kan het speciale teken van de breuklijn in een cel vinden en verwijderen of vervangen door een spatieteken. Het speciale teken van de onderbrekingsregel kan in een cel worden ingevoerd met behulp van de sneltoets Alt+Enter en kan worden gebruikt in VBA-code met zijn tekensetnummer met behulp van de VBA-functie Chr(10).
1234567891011121314 | Sub VervangVoorbeeld_6()Dim StrEx As String 'Definieer een stringvariabele''Lees de waarde van cel A2 in werkblad Blad1'StrEx = ThisWorkbook.Worksheets("Blad1").Bereik("A2").Waarde'Het teken van de breuklijn dat is ingevoerd met Alt+Enter is Chr(10) en is onzichtbaar.'Deze coderegel vervangt dat teken door spatie'StrEx = Vervang(StrEx, Chr(10), " ")'Schrijf de vervangen waarde in cel B2 in werkblad Blad1ThisWorkbook.Worksheets("Blad1").Bereik("B2").Waarde = StrExEinde sub |