Ich habe folgendes Problem: Ich habe in einer Spalte verschiedene Codes stehen, die alle unterschiedlich lang sind. In diesen Codes sind verschiedene Mengenangaben vorhanden (10ml, 250mg,..). Diese würde ich mir gerne in einer separaten Spalte anzeigen lassen. Das heißt die Mengenenangaben, sollen in dem Code gesucht werden und in der Zeile nebendran ausgespuckt werden.
Ich habe schon eine Liste angelegt mit allen vorhandenen Mengenangaben. Nun ist meine Frage: Kennt ihr eine Formel mit der ich die Mengenangaben aus meiner Liste in Spalte A suchen kann und diese dann separat in Spalte B wiedergeben kann?
Sub prcCEF() Dim objReg As Object, objM As Object Dim lngC As Long
Set objReg = CreateObject("vbscript.regexp") objReg.Pattern = "\d+[a-z]+" For lngC = 1 To 4 Set objM = objReg.Execute(Cells(lngC, 1)) If objM.Count > 0 Then Cells(lngC, 2) = objM(0) Next lngC End Sub
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • dobo1809
Danke Case! Könntest du mir noch sagen wie du vorgegangen bist und wie man diese Formel schreibt? Ich kenne mich leider mit den Array Formeln gar nicht aus.
das ist eine UDF. Mit RegExp kannst du Strings manipulieren bzw. abändern oder auslesen. Ich teste alle meine Pattern hier. Im großen Fenster kopierst du deinen Suchstring rein und im oberen Fenster dein Pattern um den String entsprechend zu bearbeiten.
Du muss also in deiner Datei im VBA Editor eine Modul hinzufügen und die Funktion hineinkopieren, dann kannst du sie als Formel im Tabellenblatt nutzen. Die Datei muss dann als "*.xlsm" oder "*.xlsb" gespeichert werden.
Der Code mal etwas auskommentiert: :21: [attachment=34115]