Comment supprimer des caractères spéciaux et des alphabets dans une chaîne? je dois le convertir en p> mais il devrait Autoriser les espaces! p> J'ai trouvé le vba p> 123 Pourriez-vous me dire comment supprimer tous les caractères sauf les numéros et les espaces dans la chaîne? P> Merci À l'avance p> p> remplacer code> - mais écrire un remplacement pour chaque caractère rend mon code gros. Eh bien, laissez-moi vous dire clairement sans rien cacher de vous: p>
QWe123 4567 *. 90 code> '' String avec des cellules d'espaces (1, "A"). Valeur li>
123 4567 90 code> 'Supprimer les personnages Premier Garder les espaces blancs li>
A1: A3 code>
4567
90 P> BlockQuote> Li>
ol> (pour chaque espace, il devrait insérer une ligne et remplir cela) em>
4 Réponses :
Vous devez utiliser une expression régulière.
Voir cet exemple: p> Explication: strong>
motif = "([0-9] |) +" code> correspondra à n'importe quel groupe 0 ou plus (
+ code>) contenant un numéro (
[0-9] < / code>) ou (
| code>) un espace (
code>). p>
Comment cela peut-il être la réponse acceptée? Cela ne fonctionne même pas avec les exemples de cordes que l'OP fournie.
Cela fonctionne sur l'exemple que j'ai donné et s'il a été accepté, cela fonctionne probablement pour l'OP. En fait, le . Code> et
* code> apportez le re pour arrêter de sorte que si vous vouliez éviter cela, vous pouvez ajouter un
remplacer code> avant d'exécuter le
global code> devrait être vrai.
@jmax pls Voir commentaire ci-dessus RE GLOBAL code>
alternative non-re alternative; pour: p>
bandes les personnages indésirables (bon travail avec le LHS Mid), mais ne va pas à l'étape suivante pour placer les sous-chaînes en cellules descendantes
Ces deux codes amusants feront tous les deux gibes ..
Sub MySplitter(strInput As String) Row = 10 ' Start row Col = "A" ' Column Letter Range(Col & Row) = "" ' Clean the start cell For i = 1 To Len(strInput) ' Do with each Character in input string... c = Mid(strInput, i, 1) ' Get actual char If IsNumeric(c) Then Range(Col & Row) = Range(Col & Row) & c ' If numeric then append to actual cell If (c = " ") And (Range(Col & Row) <> "") Then 'If space and actual row is not empty then... Row = Row + 1 ' Jump to next row Range(Col & Row) = "" ' Clean the new cell End If Next End Sub Function KeepNumbersAndSpaces(ByVal strInput As String) For i = 1 To Len(strInput) ' Do with each Character in input string... c = Mid(strInput, i, 1) ' Get actual char If IsNumeric(c) Or c = " " Then ' If numeric or a space then append to output KeepNumbersAndSpaces = KeepNumbersAndSpaces & c End If Next End Function Sub Test() strInput = "qwert1234*90)! qwe123 4567*. 90" MySplitter (strInput) Range("A5") = KeepNumbersAndSpaces(strInput) End Sub
quelque chose comme ça à
sous em> p> fonction em> p>