Aufgabenstellung:
In einer Liste (Zellbereich A1:A10) sind Texte mit Ziffern enthalten, siehe folgende Abbildung.
A
1
Der Preis Beträgt 25 Euro für diesen Artikel.
2
Der Preis Beträgt 55 Euro für diesen 4Artikel.
3
Der Preis Beträgt 190 Euro für diesen Artikel.
4
Der Preis Beträgt 110 Euro für diesen Artikel.
5
Der Preis Beträgt 74 Euro für diesen Artikel.
6
Der Preis Beträgt 49 Euro für diesen Artikel.
7
Der Preis Beträgt 5 Euro für diesen Artikel.
8
Der Preis Beträgt 83 Euro für diesen Artikel.
9
Der Preis Beträgt 145 Euro für diesen Artikel.
10
Der Preis Beträgt 17 Euro für diesen Artikel.
Aus dieser Liste sollen nun die einzelnen Zahlen ausgelesen und daneben in Spalte B geschrieben werden. Als Besonderheit gilt, dass nur Zahlen berücksichtigt werden dürfen, die innerhalb der Grenzen von 50 bis 150 liegen. Zahlen, die unter 50 bzw. über 150 liegen sollen nicht extrahiert werden.
Lösung:
Erfassen Sie folgende Prozedur in einem Modul-Blatt:
Sub ZahlenExtrahieren() '** Auslesen von Zahlen zwischen 50 und 150 - Alle anderen Werte werden nicht '** ausgelesen '** Dimensionierung der Variablen Dim strTxt As String Dim varVal As Variant For d = 1 To 10 '** Text Zelle auslesen strTxt = Cells(d, 1).Text '** Variable löschen strval = "" '** Durchlaufen aller Zeichen in der Zeile For lngindex = 1 To Len(strTxt) Select Case Asc(Mid(strTxt, lngindex, 1)) '** Prüfen, ob es sich um eine Zahl handelt Case 48 To 57 '** Zahlen zusammensetzen varVal = varVal & Mid(strTxt, lngindex, 1) '** Prüfen, ob der Wert innerhalb der Grenzen liegt If CDbl(varVal) >= 50 And CDbl(varVal) <= 150 Then Cells(d, 2).Value = varVal End If Case Else '** Variable löschen varVal = "" End Select Next lngindex Next d End Sub
Diese Prozedur liest ausschließlich zusammenhängende Zahlen aus, welche innerhalb des angegebenen Wertebereichs von 50 bis 150 liegen.
Das Ergebnis sieht wie folgt aus:
A
B
1
Der Preis Beträgt 25 Euro für diesen Artikel.
2
Der Preis Beträgt 55 Euro für diesen 4Artikel.
55
3
Der Preis Beträgt 190 Euro für diesen Artikel.
4
Der Preis Beträgt 110 Euro für diesen Artikel.
110
5
Der 1 Preis Beträgt 74 Euro für diesen Artikel.
74
6
Der Preis Beträgt 49 Euro für diesen Artikel.
7
Der Preis Beträgt 5 Euro für diesen Artikel.
8
Der Preis Beträgt 83 Euro für diesen Artikel.
83
9
Der Preis Beträgt 145 Euro für diesen Artikel.
145
10
Der Preis Beträgt 17 Euro für diesen Artikel.
Die Zahl 25 in Zeile 1, die Zahl 190 in Zeile 3, die Zahl 49 in Zeile 6, die Zahl 5 in Zeile 7 und der Wert 17 in Zeile 10 wird bei der Auswertung nicht berücksichtigt, da die angegebenen Kriterien nicht erfüllt sind.