En supprimant Tous les Espaces de Chaîne
J'ai créé une macro pour supprimer tous les espaces dans une chaîne de caractères, plus précisément une adresse e-mail. Cependant il ne supprime environ 95% de l'espace, et laisse un peu de.
Mon code:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
Choses que j'ai essayé de résoudre le problème sont les suivants:
~ A confirmé les espaces sont en effet des espaces avec la fonction de Code, c'est le caractère 32 (espace)
~ Utilisé un substitut de la macro en conjonction avec la remplacer macro
~ Avoir d'autres macro en utilisant la fonction Trim pour supprimer attaque et de fuite des espaces
~ Font de la macro de test pour les espaces insécables (caractère 160)
~ Utilisé la fonction Rechercher et Remplacer pour rechercher et remplacer des espaces de rien. Confirmé travailler.
Je n'ai qu'une cellule sélectionnée lorsque je lance la macro. Il sélectionne et passe par toutes les cellules en raison de la Sélection.Les cellules de la partie du code.
Quelques exemples:
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM.
Ces juste contiennent régulièrement des espaces, mais sont ignorés.
w = WorksheetFunction.Clean(w)
Pouvez-vous fournir une chaîne qu'il ne fonctionne pas? Qui seront utiles à reproduire le problème.
Sont le remplacement des espaces ne se produisent pas lorsque vous ne sélectionnez la cellule avant d'exécuter le code? Ce code s'applique uniquement aux cellules que vous avez sélectionnées.
Je n'ai qu'une cellule sélectionnée lorsque je lance la macro, il sélectionne et passe par toutes les cellules en raison de la Sélection.Les cellules de la partie du code. Comme pour la fourniture de chaînes de caractères, je vais donner quelques exemples: 1 ÉTOILE se DÉPLAÇANT @ ATT.NET, 322 [email protected] et ALEZZZZ@AOL. COM. Comme vous pouvez le voir, ces juste contiennent régulièrement des espaces, mais sont ignorés pour une raison quelconque.
Double Possible de VBA impossible de supprimer les espaces
OriginalL'auteur PatrykChristopher | 2017-02-17
Vous devez vous connecter pour publier un commentaire.
Il suffit d'utiliser une expression régulière:
L'appeler comme ceci:
Il ne remplacera pas si vous l'avez explicitement référence à la cellule dans laquelle ils se trouvent? I. e.
Range("A1").Value = RemoveWhiteSpace(Range("A1").Value)
? Où en êtes-vous de réglageSelection
?Je suis allé de l'avant et a couru la fonction séparément =RemoveWhiteSpace(CellNumber), et il a parfaitement fonctionné. Cependant lors de l'exécution de la macro, elle ne supprime pas les espaces pour une raison quelconque.
Cela signifie que votre boucle sur
Selection
n'est pas de frapper ces cellules. Vous n'avez pas arriver à avoir d'erreur de manipulation éteint pensez-vous?Vous devriez probablement directs que pour l'OP - je sais déjà tout cela, mais je suis le seul que vous êtes de ping.
OriginalL'auteur Comintern
Essayez ceci:
OriginalL'auteur user1274820
Utiliser "Substituer"
Exemple...
=REMPLACER(C1 à C18," ","")
OriginalL'auteur Gi1ber7
Et à ajouter à l'excellent avis de tous les plus grands contributeurs, essayez de le
GARNITURE ou LTRIM, ou RTRIM et vous pouvez en savoir plus sur ces fonctions ici:
https://msdn.microsoft.com/en-us/library/office/gg278916.aspx
Maintenant, cela ne veut pas supprimer les espaces (espaces entre les lettres) mais il va supprimer toute attaque et de fuite des espaces.
Espère que cette aide.
OriginalL'auteur Waseem
Parce que vous supposez que
Selection.Cells
comprend toutes les cellules de la feuille.OriginalL'auteur Slai
De l'espace de Problème avec Excel
ok, la seule façon que je vois ces deux types d'espace est par la conversion de leur code Ascii de la valeur de qui je le fais ici
maintenant, pour expliquer cette fonction que j'ai faite, il suffit de filtrer la chaîne caractère par caractère de vérifier si son égal pour les deux types d'espace que j'ai mentionnés. si non il va concaténer ce caractère dans la chaîne, qui sera la valeur finale après la boucle. espérons que cette aide. Merci.
OriginalL'auteur JayLlanz