UDF de supprimer les caractères spéciaux, les signes de ponctuation & espaces à l'intérieur d'une cellule pour créer de clé unique pour Vlookups

J'ai bidouillé la suite de fonctions Définies par l'Utilisateur en VBA qui me permet de supprimer certains non les caractères du texte à partir d'une Cellule donnée.

Le code est comme suit:

Function removeSpecial(sInput As String) As String
    Dim sSpecialChars As String
    Dim i As Long
    sSpecialChars = "\/:*?™""®<>|.&@#(_+`©~);-+=^$!,'" 'This is your list of characters to be removed
    For i = 1 To Len(sSpecialChars)
        sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), " ")
    Next
    removeSpecial = sInput
End Function

Cette portion de code, évidemment, définit ce que les personnages sont à supprimer:

sSpecialChars = "\/:*?™""®<>|.&@#(_+`©~);-+=^$!,'"

Je tiens également à inclure un espace normal de caractère, " ", au sein de ce critère. Je me demandais si il y a une sorte de caractère d'échappement que je peux utiliser pour ce faire?

Donc, mon objectif est d'être en mesure d'exécuter cette fonction, et de supprimer tous les caractères spécifiés à partir d'une Cellule Excel, tout en supprimant tous les espaces.

Aussi, je me rends compte que je pouvais le faire avec un =REMPLACER la fonction dans Excel lui-même, mais je voudrais savoir si il est possible en VBA.

Edit: C'est corrigé! Merci simoco!

Function removeSpecial(sInput As String) As String
    Dim sSpecialChars As String
    Dim i As Long
    sSpecialChars = "\/:*?™""®<>|.&@# (_+`©~);-+=^$!,'" 'This is your list of characters to be removed
    For i = 1 To Len(sSpecialChars)
        sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "") 'this will remove spaces
    Next
    removeSpecial = sInput
End Function
  • I also want to include a normal space character - en fait c'est pas de sens pour moi. Si vous incluez l'espace, votre Replace$ fonction de remplacer l'espace avec l'espace
  • Il suffit d'utiliser un espace dans le texte cité de vos caractères spéciaux. Pas de s'échapper est nécessaire.
  • Hmm, j'ai essayé, et mon UDF ne semble toujours pas à supprimer de l'espace, je vais poster mon code mis à jour
  • avez-vous vu mon commentaire ci-dessus? Votre fonction remplace l'espace avec l'espace. Et on s'attend à ce que rien ne s'est vraiment passé (parce que vous avez troisième paramètre de Replace$ est égal à " " - espace, il suffit de remplacer avec une chaîne vide "")
  • Oh je crois que je vois ce que tu veux dire, j'ai totalement raté que dans le code. Je suis bête. Je vais corriger et publier fixes. Je vous remercie pour l'aide.
InformationsquelleAutor | 2014-03-06