Excel-VBA Entfernen, Unicode-Zeichen in einem String
Wie kann ich entfernen Sie alle Sonderzeichen, die nicht fallen unter ASCII-Kategorie in VBA?
Diese sind einige der Symbole, die angezeigt wird in meinem string, die beseitigt werden müssen.
Œ Œ Š Š Ÿ ƒ
Es gibt viele weitere solcher Zeichen.
Diese gehören nicht zum ASCII-Kategorie, wie Sie sehen können, diese http://www.ascii.cl/htmlcodes.htm
Habe ich versucht, etwas wie dieses
strName = Replace(strName, ChrW(376), " ")
aber es hat nicht funktioniert.
Mir bitte helfen, diese zu lösen.
Dank
Jeevan
Terminologie: Wie Sie wissen, Unicode ist eine Obermenge von ASCII. Aber die ASCII-Zeichen sind, was als "block" nicht ein Unicode-Kategorie, insbesondere von C0 Controls and Basic Latin - block.
InformationsquelleAutor Jeevan | 2016-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre ein
RegEx
Lösung für Sie von Interesse sein?Gibt es viele Beispiele für die verschiedenen Sprachen, die auf dieser Website - hier ist ein C#: Wie kann man Streifen nicht-ASCII-Zeichen aus einem string? (in C#).
Versuchen, diese für VBA:
Wenn Sie konvertieren, viele Saiten, wie zB in einer Schleife, dann versuchen Sie definieren das Muster einmal und nur den Aufruf der
.Replace
- Funktion innerhalb der Schleife. Das könnte helfen, mit Geschwindigkeit.Danke 🙂 , nicht reduzieren die Zeit viel, aber trotzdem half es zu reduzieren ein wenig Zeit.
Dies tut decken alle unicode oder nur 0 bis 7F? Wird diese Arbeit für alle Randbedingungen? Bitte lassen Sie mich wissen.
Es ersetzt alle Zeichen, die nicht im Unicode-Bereich von 0 bis 127.
InformationsquelleAutor Ambie
Was bekommen Sie, wenn Sie schreiben Sie das folgende in das Direktfenster?
Bekomme ich:
alealealeale
Hallo, ich denke, es ist ein arbeiten in Debug.Drucken aber, wenn über den tatsächlichen Wert aus Zelle Ÿ vorhanden ist, es nicht tun.
InformationsquelleAutor Vityata
versuchen
application.clean()
es entfernt alle nicht druckbaren Zeichen
Bitte werfen Sie einen Blick auf dieses "Arbeitsbereich".co/FtkoMrB.png ich habe auch versucht, "strName =" Clean(strName)" und Sie hat nicht funktioniert.
Versuchen Sie es mit der Anwendung.WorksheetFunction.Säubern("üäöaŠsd"). Aber es wird dir nicht helfen, es ist nur für nicht-druckbare Zeichen. Und die euren sind bedruckbar.
Du hast Recht. Dies ist nur ein test, um zu sehen, wenn Sie aufmerksam sind xD 😛 Aber @Jeevan
.clean
existieren unterworksheetfunction
aber es kann auch aufgerufen werden unterapplication
. Ich werde nur lassen Sie die Antwort hier zur Referenz.Ich wusste nicht genau, was du meinst. "Anwendung.sauber" nicht-show mit Intellisense, aber mit "Anwendung.worksheetfunction.sauber" es dort ist.
InformationsquelleAutor Rosetta
Angenommen, dass Sie haben:
Dann den folgenden code erhalten
String
ausA1
und lassen sich nur überANSI
(code 0 bis 255) inA2
.Ich denke, beim Lesen selbst Ÿ liest sich wie ? von excel. Ÿ ist sowieso unsichtbar im excel-Blatt.
Wie Sie sehen in meinem Bild, die "Das Œ ist œ ein W testš . Ÿ ƒ Blubb." ist der eigentliche Inhalt meiner Platte. Mit diesem meinem code funktioniert genau so, wie ich es beschrieben habe. Wo sehen Sie das "Ÿ" ist dann nicht sichtbare auf dem Blatt?
Ich sehe, Ÿ wenn ich kopieren und einfügen, dass der string aus der excel-Zelle auf einem Notizblock. Vielen Dank für den Versuch zu helfen. Wir haben jetzt eine Lösung, Ambie. Vielen Dank für Ihre Bemühungen.
InformationsquelleAutor Axel Richter
Versuchen mit unten
können Sie bitte zeigen Sie mir Ihren string?
Mein String sieht wie LPAIF excel-sheet, aber es ist ein Ÿ char versteckt in der front, die nicht sichtbar in excel, aber es existiert, so wird die Zeichenfolge ŸLPAIF. Einige Lösungen gegeben oben gearbeitet, wenn ich habe "ŸLPAIF" als einen statischen string, aber nicht, wenn man Sie aus excel direkt. Jedenfalls haben wir jetzt eine Lösung, danke für den Versuch zu helfen.
InformationsquelleAutor Karthick Gunasekaran
Nicht brauchen, um in einer Schleife jedes Zeichen
Vielleicht zu spät, aber vielleicht hilft es ja jemandem:
InformationsquelleAutor Sorin GFS