Denna handledning visar hur du använder ersätt VBA -funktionen för att ersätta textsträngar.
Ersätt funktion
Funktionen VBA Replace returnerar en sträng, med substitutioner gjorda. Med användning av valfria parametrar kan den nya strängen börja vid den position som anges av start och slutar i slutet av den ursprungliga strängen.
VBA Ersätt Ersätt en delsträng
VBA Replace -funktionen kan användas för att ersätta alla delsträngar som finns, i varje del som den hittas.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Ersätt ("ABCABCABC", "A", "!")'Resultatet är: "! BC! BC! BC"MsgBox Ersätt ("Jag gillar rosa, rött och svart", "rosa", "lila")'Resultatet är: "Jag gillar lila, rött och svart"MsgBox Ersätt ("A, B, C, A, B, C, A, B, C", ",", ",")'Resultatet är: "ABCABCABC"MsgBox Ersätt ("ABCABCABC", "ABC", "!")'Resultatet är: "!!!"MsgBox Ersätt ("ABCABCABC", "ABc", "!")'Resultatet är: "ABCABCABC"MsgBox Ersätt ("ABCABCABC", "ZBC", "!")'Resultatet är: "ABCABCABC"Avsluta Sub |
VBA Ersätt utgångsläge
VBA Replace -funktionen kan användas för att ersätta alla delsträngar som finns, i varje del som den hittas. Om vi tilldelar en startposition blir resultatet delen av den ursprungliga strängen efter den startpunkten.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Ersätt ("ABCABCABC", "A", "123") 'Resultat är: "123BC123BC123BC"MsgBox Ersätt ("ABCABCABC", "A", "123", 2) 'Resultat är: "BC123BC123BC"MsgBox Ersätt ("ABCABCABC", "A", "123", 7) 'Resultat är: "123BC"MsgBox Ersätt ("ABCABCABC", "A", "123", 8) 'Resultat är: "BC"MsgBox Ersätt ("ABCABCABC", "ABC", "!@") 'Resultat är: "!@!@!@"MsgBox Ersätt ("ABCABCABC", "ABC", "!@", 2) 'Resultat är: "BC!@!@"MsgBox Ersätt ("ABCABCABC", "ABC", "!@", 6) 'Resultat är: "C!@"MsgBox Ersätt ("ABCABCABC", "ABC", "!@", 7) 'Resultat är: "!@"MsgBox Ersätt ("ABCABCABC", "ABC", "!@", 8) 'Resultat är: "BC"Avsluta Sub |
VBA Ersätt endast några få tillfällen
VBA Replace -funktionen kan användas för att ersätta alla delsträngar som finns, i varje del som den hittas. Vi kan valfritt bestämma hur många händelser som ska ersättas.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Ersätt ("ABCABCABC", "A", "12") 'Resultat är: "12BC12BC12BC"MsgBox Ersätt ("ABCABCABC", "A", "12",, 1) 'Resultatet är:' 12BCABCABC 'MsgBox Ersätt ("ABCABCABC", "A", "12",, 2) 'Resultat är:' 12BC12BCABC 'MsgBox Ersätt ("ABCABCABC", "A", "12",, 3) 'Resultatet är:' 12BC12BC12BC 'MsgBox Ersätt ("ABCABCABC", "A", "12",, 5) 'Resultat är:' 12BC12BC12BC 'MsgBox Ersätt ("ABCABCABC", "A", "12", 3, 1)'Resultatet är: "C12BCABC"'Vi ersatte A med 12, 1 gång med start från position 3 i den ursprungliga strängen.Avsluta Sub |
VBA Ersätt fodralkänslighet
VBA -ersättningsfunktionen är som standard skiftlägeskänslig. Du kan ändra det beteendet till skiftlägeskänslig med en valfri parameter (vbTextCompare). I så fall måste du också definiera sökningens startposition.
12345678910111213 | Sub ReplaceExample_4 ()MsgBox Ersätt ("ABcABCABc", "ABc", "12")'Resultatet är: "12ABC12"MsgBox Ersätt ("ABcABCABc", "ABc", "12",,, vbTextCompare)'Resultatet är: "121212"'När vi använder vbTextCompare måste vi lägga till de 2 andra valfria argumenten:'börja och räknaMsgBox Ersätt ("ABcABCABcABc", "ABc", "12", 3, 1)'Resultatet är: "cABC12ABc"'Startade från position3 och ersatte ABC bara 1 gång.Avsluta Sub |
Du kan också utföra en byte som inte är skiftlägeskänslig genom att lägga till Alternativjämför text högst upp i din modul:
1 | Alternativ Jämför text |
VBA Ersätt dubbla citat
VBA Replace -funktionen kan ersätta det dubbla citattecken som används för att avgränsa början och slutet av en sträng.
VBA Chr -funktionen kan returnera ett tecken från dess nummer i teckenuppsättningen.
1 | MsgBox Chr (34) 'Resultat är: " |
Eller
1 | MsgBox Chr (64) 'Resultat är: @ |
Dubbla citattecken kan användas inuti VBA Ersätt funktion med “” ”” eller VBA funktion Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx som strängStrEx = "AB" "AB" ""MsgBox StrEx resultat är: AB "AB"MsgBox Ersätt (StrEx, Chr (34), "12")'Resultatet är: AB12AB12MsgBox Ersätt (StrEx, "" "", "DQ")'Resultatet är: "ABDQABDQ"Avsluta Sub |
VBA Ersätt brytlinje i cell
VBA Replace -funktionen kan hitta specialtecknet för brytlinjen i en cell och ta bort det eller ersätta det med ett mellanslagstecken. Brytlinjens specialtecken kan matas in i en cell med tangentbordsgenvägen Alt+Enter och kan användas i VBA -kod med dess teckenuppsättningsnummer med VBA -funktionen Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definiera en strängvariabel'Läs värdet för cell A2 i kalkylblad 1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Område ("A2"). Värde'Brytlinjetecknet som anges med Alt+Enter är Chr (10) och är osynligt.'Denna kodrad ersätter det tecknet med mellanslagStrEx = Ersätt (StrEx, Chr (10), "")'Skriv det ersatta värdet i cell B2 i kalkylbladet1ThisWorkbook.Worksheets ("Sheet1"). Omfång ("B2"). Value = StrExAvsluta Sub |