VBA impossible de supprimer les espaces
pourquoi trim ne fonctionne pas en VBA?
for i = 3 to 2000
activesheet.cells(i,"C").value = trim(Activesheet.cells(i,"C").value)
next i
Peu importe comment j'essaie de son parvenez pas à supprimer l'espace entre le texte
hiii how ' even after trying trim the o/p is still these
hiii how
Est-il quelque chose de mal iam faire avec garniture ? J'ai juste besoin de supprimer les espaces supplémentaires alors j'ai trouvé garniture de le faire mais sa ne fonctionne pas bien ltrim et rtrim fonctionnent très bien
Vraiment? Merci que dois-je faire pour enlever les espaces entre les
Avez-vous lu l'aide de VBA pour la
Pas vraiment important mais vous pouvez supprimer les activesheet partie. Et pour chaque boucle par range("C3:C2000") probobly être plus rapide.
Replace(Activesheet.cells(i,"C").value," ")
serait de se débarrasser de tous les espaces dans la chaîne. Pas si sûr que voulez vous voulez bien .....Avez-vous lu l'aide de VBA pour la
Trim
fonction? Parce que c'est maintenant que Trim
est censé faire...Pas vraiment important mais vous pouvez supprimer les activesheet partie. Et pour chaque boucle par range("C3:C2000") probobly être plus rapide.
OriginalL'auteur niko | 2011-09-13
Vous devez vous connecter pour publier un commentaire.
La VBA
Trim
function est différente de celle d'Excel. Utilisation ExcelApplication.WorksheetFunction.Garniture
function à la place.Excel Garniture va supprimer tous les espaces à l'exception d'un seul espace entre les mots. VBA Garniture va supprimer attaque et de fuite des espaces.
Remercier MME pour utiliser le même mot pour des fonctions différentes.
En espérant pouvoir obtenir une fonction VBA afin de travailler comme de la Excel fonction WS
Application.La garniture.
OriginalL'auteur aevanko
Trim supprime les espaces supplémentaires au début et à la fin, pas au milieu d'une chaîne de caractères.
De ici.
PS. Ce n'est pas le moyen le plus efficace pour supprimer les espaces. Je ne voudrais pas l'utiliser sur de nombreux, de très longues chaînes ou dans une boucle serrée. Il pourrait être adapté à votre situation.
trim
etreplace " "
ne fonctionnera pas.Serait une regex à la recherche pour de multiples espaces et de le remplacer avec un seul serait plus efficace? (juste ce qui suggère une plus performants, de façon que si vous pensez que ça pourrait marcher)
voir ma réponse. C'est aussi simple que l'utilisation d'Excel fonction plutôt que VBAs version (ils produisent des résultats différents).
OriginalL'auteur Mitch Wheat
Je sais que cette question est vieux, mais je viens de trouver ça et j'ai pensé ajouter ce que j'utilise pour supprimer plusieurs espaces en VBA....
OriginalL'auteur osknows
Sont tous vos autres fonctions de laisser des espaces derrière?
Obtenir CleanUltra!
CleanUltra supprime tous les espaces et les caractères non-imprimables, y compris les espaces laissés par d'autres fonctions!
J'espère que vous trouverez ce utile. Toutes les améliorations sont les bienvenus!
Voici un exemple de son utilisation:
Voici un test que j'ai couru pour vérifier que la fonction réellement supprimé tous les espaces.
vbNullChar
a été particulièrement retors. J'ai dû mettre de la fonction de l'enlever en premier, avant laCLEAN
etTRIM
fonctions ont été utilisées pour arrêter de supprimer tous les caractères après levbNullChar
.OriginalL'auteur ChrisB
Ma question a été que le dernier caractère est un chr(160) - un espace insécable. Afin de garniture(remplacer(Str,chr(160),"")) était la solution.
OriginalL'auteur baltman
Lorsque vous appelez Trim() VBA est en fait l'appel des Chaînes de caractères.Trim(). Cette fonction ne supprime attaque et de fuite des espaces. Pour supprimer les espaces à l'intérieur d'une chaîne, utilisez
OriginalL'auteur Excel Developers
Je sais que c'est assez vieux, mais pensé que je devais ajouter quelque chose d'autre plutôt que toutes ces options de remplacement.
À l'aide de la garniture (ou trim$) en VBA va supprimer l'attaque et de fuite des espaces, qui, comme mentionné, est différent de =TRIM dans Excel.
Si vous avez besoin de supprimer les espaces (comme mentionné ci-dessous pas nécessairement tous les espaces) à partir de l'intérieur d'une chaîne de simplement utiliser
WorksheetFunction.Trim
.OriginalL'auteur RobDogNZ
Parfois, ce qui semble être un espace n'est pas un espace, mais un personnage qui ne peut pas être affichée.
Utiliser la fonction ASC pour obtenir la valeur de l'entier du personnage. Ensuite, utilisez le code suivant:
OriginalL'auteur Brian Stevenson
Si Vous êtes familier avec les collections, une fois, j'ai envoyé un petit code que le processus de la feuille entière, même si elle est énorme et supprimer tous les espaces de double, le plomb et le sentier des espaces et des caractères invisibles de toutes les cellules. Il suffit de prendre soin, il va supprimer le format de votre texte, j'ai aussi n'a pas fait beaucoup de test et c'est exhaustive, mais cela a fonctionné pour mon court-tâche et travailler rapidement.
C'est une fonction Auxiliaire de chargement de la feuille de dans une collection
Et c'est le principal Sous qui supprime les espaces
OriginalL'auteur user2971872
Je sais que cette question est vieux, mais je veux juste partager ma solution sur la façon de traiter et de corriger ce problème.
Peut-être vous pourriez vous demander pourquoi parfois
TRIM function
ne fonctionne pas, rappelez-vous qu'il sera seulement supprimer les espaces et les espaces sont équivalentes à ASCII 32. Donc, si ces ASCII 13 ou ASCII 10 existe dans le Début ou fin de votre chaîne de valeurTRIM function
ne fonctionnera pas sur elle.Avec ce code, il fonctionne pour moi, d'ailleurs si cela pourrait ne pas fonctionner sur votre côté puis essayez de vérifier l' ASCII de vous de la chaîne de valeur, car il pourrait avoir une autre invisible char spécial qui pourrait ne pas couverte sur mon code pour remplacer sur elle, de bien vouloir nous ajouter pour le travail.
Veuillez voir référence pour certains invisible char spécial.
OriginalL'auteur davinceleecode