10
votes

Comment puis-je supprimer les personnages?

Comment supprimer des caractères spéciaux et des alphabets dans une chaîne? xxx

je dois le convertir en xxx

mais il devrait Autoriser les espaces! xxx

J'ai trouvé le remplacer - mais écrire un remplacement pour chaque caractère rend mon code gros. Eh bien, laissez-moi vous dire clairement sans rien cacher de vous:

  1. Entrée: QWe123 4567 *. 90 '' String avec des cellules d'espaces (1, "A"). Valeur
  2. mon idée de faire ces prochaines suivantes: 123 4567 90 'Supprimer les personnages Premier Garder les espaces blancs
  3. sortie finale dans A1: A3

    123
    4567
    90 (pour chaque espace, il devrait insérer une ligne et remplir cela)

    Pourriez-vous me dire comment supprimer tous les caractères sauf les numéros et les espaces dans la chaîne?

    Merci À l'avance


0 commentaires

4 Réponses :


12
votes

Vous devez utiliser une expression régulière.

Voir cet exemple: xxx

Explication:

motif = "([0-9] |) +" correspondra à n'importe quel groupe 0 ou plus ( + ) contenant un numéro ( [0-9] < / code>) ou ( | ) un espace ( ).

une autre info sur le REGEXP:


4 commentaires

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 . et * apportez le re pour arrêter de sorte que si vous vouliez éviter cela, vous pouvez ajouter un remplacer avant d'exécuter le


global devrait être vrai.


@jmax pls Voir commentaire ci-dessus RE GLOBAL



9
votes

alternative non-re alternative; xxx

pour: xxx


1 commentaires

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



4
votes

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


0 commentaires

2
votes

quelque chose comme ça à

  • Split la chaîne à l'aide d'un
  • Placez les correspondances dans un tableau
  • Dump the tableau dans une plage de tableur automatique de tableur

    sous xxx

    fonction xxx


0 commentaires