Frage

Ich möchte eine Zellenspalte von Strings in Excel VBA analysieren, wobei jede der Zelle enthält folgende Möglichkeiten:

2 '␂'

Ich möchte den Inhalt dieser Zelle ändern, nur 2 (oder keine numerischen Zeichen enthalten kurz vor dem ‚string‘. Was die einfachste Methode der Parsen solcher Informationen sein würde? Danke.

War es hilfreich?

Lösung

Wenn Sie sich sicher über das Format sind, finden Sie die Zeichenfolge vor dem '(Apostroph) und den Zellenwert ändern. Vorausgesetzt, dass Sie auf die Zelle, die diesen Wert hat, verwenden Sie den folgenden VBA-Code.

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

Es sucht nach einem Apostroph und extrahiert Zeichen, bevor es und legt es in die aktuelle Zelle.

Andere Tipps

Unter der Annahme, dass die numerischen Daten immer am Anfang der Zelle ist, können Sie Regex verwenden, um alle fortlaufenden Nummern am Anfang der Zeichenfolge zu finden, zu stoppen, sobald sie die ersten nicht-numerischen Zeichen treffen. Hier ist eine Funktion, die es für Sie tun, ich hoffe, es hilft. Die ^ steht für den Beginn der Zelle ist, und (\ d +) bedeutet ein oder mehrere numerische Zeichen und die. * Bedeutet von null oder mehr Zeichen. Ich gehe davon aus es nur eine Reihe von Zahlen, die Sie benötigen, so dass ich die Regex zurückgeben gerade submatch 0 (erstes Spiel).

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top