In einer Case Strucktur einen Wertebereich abfragen
Hallo, könnt ihr mir nochmals weiterhelfen?
Ich lese aus einer Exceltabelle Strings ein, je nachdem was eingelesen wird möchte ich die Casefunktionen aufrufen
Select Case sheet.Cells(Line,1).Value
Case "Minimal"
Case "Maximal"
Case "Wert_"
so und jetzt mein Problem, mir soll der Casefall "Wert_" nur dann aufgerufen werden wenn Wert von Wert_5 bis Wert_12 kommt (MöglichWert_1 bis Wert_999). Ich könnte für jeden Wert_5 bis Wert_12 einen Case Programmieren, möchte ich aber nicht unbedingt. Ich hab aber schon gelesen es gibt Character ranges: "[a-z]" will match any character in the range "a" to "z"
Kann ich meinem Programm in der Casestruktur einen Range mitgeben?
Gruß
captainchaos
Ich lese aus einer Exceltabelle Strings ein, je nachdem was eingelesen wird möchte ich die Casefunktionen aufrufen
Select Case sheet.Cells(Line,1).Value
Case "Minimal"
Case "Maximal"
Case "Wert_"
so und jetzt mein Problem, mir soll der Casefall "Wert_" nur dann aufgerufen werden wenn Wert von Wert_5 bis Wert_12 kommt (MöglichWert_1 bis Wert_999). Ich könnte für jeden Wert_5 bis Wert_12 einen Case Programmieren, möchte ich aber nicht unbedingt. Ich hab aber schon gelesen es gibt Character ranges: "[a-z]" will match any character in the range "a" to "z"
Kann ich meinem Programm in der Casestruktur einen Range mitgeben?
Gruß
captainchaos
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 47764
Url: https://administrator.de/forum/in-einer-case-strucktur-einen-wertebereich-abfragen-47764.html
Ausgedruckt am: 17.04.2025 um 15:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo captainchaos666!
Falls Du nicht ohnehin die "Wertnummer" (also den auf "Wert_" folgenden Teil) benötigst, würde ich sie trotzdem in etwa so einsetzen:
Alternativ kannst Du natürlich noch ein weiteres "Select Case" nach Ermittlung der intNummer verwenden, um verschiedene Nummern-Bereiche voneinander zu unterscheiden, also zB
Es gäbe zwar die Möglichkeit, den Bereich mit
abzufragen, dazu müsste allerdings die Stellenanzahl der Nummern gleich sein (also "05" statt "5").
Letzte Variante, die mir dazu einfällt:
Schön ist's IMHO nicht, funktionieren wird es.
HTH
bastla
[Edit] Varianten mit "Wert_"-Strings ergänzt. [/Edit]
Falls Du nicht ohnehin die "Wertnummer" (also den auf "Wert_" folgenden Teil) benötigst, würde ich sie trotzdem in etwa so einsetzen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
strKennzeichen = sheet.Cells(Line,1).Value 'Variablenname willkürlich von mir festgelegt
Select Case strKennzeichen
Case "Minimal"
Case "Maximal"
Case Else
If Left(strKennzeichen, 5) = "Wert_" Then
intNummer = Val(Mid(strKennzeichen, 6))
If intNummer >= 5 And intNummer <= 12 Then
End If
End If
End Select
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Select Case intNummer
Case Is < 5
Case 5 To 12
Case Else
End Select
1
Case "Wert_05" to "Wert_12"
Letzte Variante, die mir dazu einfällt:
1
Case "Wert_5", "Wert_6", "Wert_7", "Wert_8", "Wert_9", "Wert_10", "Wert_11", "Wert_12"
HTH
bastla
[Edit] Varianten mit "Wert_"-Strings ergänzt. [/Edit]
Hallo captainchaos666!
Grüße
bastla
die Abfrage bei Case Else kann ich nicht machen, da ich dort bereits einen Sonderfall bearbeite!
Dir bliebe ja immer noch der Else-Zweig des "If Left(..." für das, was Du vorher schon im "Case Else" hattest ...Case "Wert_05" to "Wert_12" => Kennt mein Programm nicht (Fehlermeldung: Anweisung erwartet) muss ich diesen Befehl anders schreiben
Getestet bei mir zwar nur mit Excel 2003 - sollte aber auch in anderen Versionen (genau) so gehen.Grüße
bastla