Excel VBA Supprimer des caractères Unicode dans une Chaîne de caractères
Comment puis-je supprimer tous les caractères spéciaux qui ne relèvent pas de l'ASCII catégorie en VBA?
Ce sont quelques-uns des symboles qui s'affiche dans ma chaîne, qui doivent être enlevés.
Œ Œ Œ Œ Š Š Ÿ §
Il y a beaucoup plus de tels caractères.
Ce n'appartiennent pas à l'ASCII catégorie comme vous pouvez le voir ce http://www.ascii.cl/htmlcodes.htm
J'ai essayé quelque chose comme ça
strName = Replace(strName, ChrW(376), " ")
mais cela n'a pas fonctionné.
Merci de m'aider à résoudre ce.
Merci
Jeevan
- Terminologie: Comme vous le savez, l'Unicode est un sur-ensemble de l'ASCII. Cependant, les caractères ASCII sont dans ce qu'on appelle un "bloc" n'est pas une Unicode catégorie, plus précisément le C0 Contrôles et Latin de Base bloc.
Vous devez vous connecter pour publier un commentaire.
Serait un
RegEx
solution être d'intérêt pour vous?Il y a beaucoup d'exemples pour les différentes langues sur ce site - voici un C# on: Comment pouvez-vous bande de non-ASCII des caractères à partir d'une chaîne de caractères? (en C#).
Essayez ceci pour VBA:
.Replace
fonction à l'intérieur de votre boucle. Qui pourraient contribuer à la vitesse.Qu'obtenez-vous lorsque vous écrivez le texte suivant dans la fenêtre exécution?
J'obtiens:
alealealeale
essayer
application.clean()
il va supprimer tous les caractères non imprimables
.clean
existent sousworksheetfunction
mais il peut aussi être appelé sousapplication
. Je vais juste laisser la réponse ici pour référence.En supposant que vous avez:
Ensuite le code suivant obtiendrez la
String
deA1
et de laisser passer uniquement lesANSI
(code 0 à 255) enA2
.Essayer avec ci-dessous
N'avez pas besoin de boucle de chaque personnage
Peut-être la fin, mais peut-être que ça aide quelqu'un: