J'ai créé une macro pour supprimer tous les espaces d'une chaîne, en particulier une adresse électronique. Cependant, il ne supprime que 95% environ des espaces et en laisse quelques-uns.
Mon code:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
Les choses que j'ai essayé de résoudre le problème incluent:
~ Confirmé que les espaces sont bien des espaces avec la fonction Code, il s'agit du caractère 32 (espace)
~ Utilisé une macro de substitution en conjonction avec la macro de remplacement
~ Avoir une macro supplémentaire utilisant la fonction Limiter pour supprimer les espaces blancs de début et de fin
~ Création d'une macro séparée pour tester les espaces insécables (caractère 160)
~ Utilisé la fonctionnalité Rechercher et remplacer pour rechercher et remplacer des espaces avec rien. Confirmé de travail.
Je n'ai qu'une seule cellule sélectionnée lorsque je lance la macro. Il sélectionne et parcourt toutes les cellules en raison de la partie Selection.Cells du code.
Quelques exemples:
1 STAR MOVING @ ATT.NET
322 [email protected]
ALEZZZZ@AOL. COM.
Ceux-ci ne contiennent que des espaces normaux, mais sont ignorés.
Il suffit d'utiliser une expression régulière:
'Add a reference to Microsoft VBScript Regular Expressions 5.5
Public Function RemoveWhiteSpace(target As String) As String
With New RegExp
.Pattern = "\s"
.MultiLine = True
.Global = True
RemoveWhiteSpace = .Replace(target, vbNullString)
End With
End Function
Appelez ça comme ça:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w.Value = RemoveWhiteSpace(w.Value)
Next
End Sub
Essaye ça:
Sub NoSpaces()
Selection.Replace " ", ""
End Sub
Et pour ajouter aux excellents conseils de tous les grands contributeurs, essayez le
TRIM 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 supprime pas les espaces incorporés (espaces entre les lettres), mais supprime les espaces de début et de fin.
J'espère que cela t'aides.
Utilisez "Remplacer" Exemple ... = SUBSTITUT (C1: C18, "", "")
Parce que vous supposez que Selection.Cells
inclut toutes les cellules de la feuille.
Cells.Replace " ", ""