Question

Je voudrais analyser une colonne de cellules de chaînes dans Excel VBA, chacun de la cellule contient les éléments suivants:

2 '␂'

Je voudrais modifier le contenu de cette cellule pour contenir seulement 2 (ou tout caractère numérique juste avant la « chaîne ». Quelle serait la méthode la plus simple de l'analyse syntaxique telles informations? Merci.

Était-ce utile?

La solution

Si vous êtes sûr sur le format, trouver la chaîne avant la '(apostrophe) et changer la valeur de la cellule. En supposant que vous êtes sur la cellule qui a cette valeur, utilisez le code VBA suivant.

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

Il cherche un extrait et caractères apostrophe avant qu'il et met dans la cellule actuelle.

Autres conseils

En supposant que les données numériques est toujours au début de la cellule, vous pouvez utiliser Regex pour trouver des numéros consécutifs au début de la chaîne, l'arrêt une fois qu'il frappe les premiers caractères non numériques. Voici une fonction qui va le faire pour vous, j'espère que cela aide. Le ^ est synonyme de démarrage de la cellule, et (\ d +) signifie un ou plusieurs caractères numériques et le. * Moyennes suivies de zéro ou plusieurs caractères. Je suppose qu'il n'y a qu'une seule série de chiffres dont vous avez besoin, donc je le regex juste retour submatch 0 (premier match).

Function ExtractNumericData(ByVal text As String) As String

Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True

End Function
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top