Visual Basic for Applications:
Ta bort citattecken från en sträng
Hur man gör:
I VBA finns det flera tillvägagångssätt för att ta bort citationstecken från en sträng. Här är ett rakt på sak exempel som använder Replace
-funktionen, som söker efter en specifik delsträng (i detta fall ett citattecken) inom en sträng och ersätter den med en annan delsträng (en tom sträng om man tar bort).
Sub RemoveQuotesExample()
Dim originalString As String
originalString = "'This' is a ""test"" string."
' Ta bort enkla citattecken
originalString = Replace(originalString, "'", "")
' Ta bort dubbla citattecken
originalString = Replace(originalString, Chr(34), "")
Debug.Print originalString 'Utskrift: This is a test string.
End Sub
Notera att för dubbla citattecken använder vi Chr(34)
eftersom ett dubbelcitat är ASCII-tecken 34. Detta är nödvändigt eftersom dubbla citattecken även används för att beteckna strängliteraler i VBA.
För mer nyanserade scenarier där citattecken kan vara en del av nödvändig formatering (t.ex. inuti ett citerat ord), kan mer sofistikerad logik, kanske involverande Regex eller tolkning tecken för tecken, krävas.
Djupdykning
VBA, som är en grundpelare i automatiseringen av uppgifter inom Microsoft Office-sviten, erbjuder ett rikt utbud av strängmanipuleringsfunktioner, där Replace
är en av de mest frekvent använda. Denna funktion skrapar dock bara på ytan av vad som kan uppnås med VBA när det gäller strängmanipulation.
Historiskt har VBA från sina föregångare tagit över betoningen på enkelhet för kontorsautomatiseringsuppgifter, därav den raka implementeringen av funktioner som Replace
. Dock, för moderna programmeringsuppgifter, särskilt de som involverar komplex strängmanipulation eller sanering, kan VBA visa sina begränsningar.
I sådana fall kan programmerare behöva kombinera VBA med reguljära uttryck (via VBScript_RegExp_55.RegExp
-objektet) för mer flexibilitet och kraft i tolkning och manipulation av strängar. Denna metod introducerar dock ytterligare komplexitet och kräver en solid förståelse av regex-mönster, vilket kanske inte är lämpligt för alla användare.
Trots sina begränsningar täcker VBA:s Replace
-funktion effektivt många vanliga scenarier som involverar borttagning av citattecken från strängar. Den fungerar som en snabb och enkel lösning för de flesta behov av strängmanipulation utan att dyka in i det mer komplexa regex-området. För de som når gränserna för vad Replace
och andra grundläggande strängfunktioner kan göra, kan utforskning av regex inom VBA eller övervägande av ett robustare språk anpassat till komplexa strängoperationer vara nästa bästa steg.