Herbers Excel-Forum - das Archiv
Select Case <-> If then elseif else

|
Betrifft: Select Case <-> If then elseif else
von: Elmar Steigenberger
Geschrieben am: 22.09.2003 16:00:49
Hallo, Ihr lieben Helfer und Helferinnen,
langsam klappts ja bei mir ganz gut mit Visual Basic, ich bin ganz zufrieden mit mir. Aber dank Eurer tollen Hilfe kann ich ja eigentlich nur gut werden :))
Eine Grundsatzfrage:
Verstehe ich das richtig, das eine Select Case-Anweisung eleganter und einfacher zu schreiben ist als eine IF THEN ELSEIF ELSE Anweisung?
Hat Select Case irgendwelche Nachteile gegenüber If then else?
Beispiel:
Bisher hab ich so programmiert:
If aZ < 10 Then
Wohnung = 0
ElseIf (aZ >= 10 And aZ <= 14) Then
Wohnung = 1
ElseIf (aZ >= 15 And aZ <= 19) Then
Wohnung = 2
ElseIf aZ >= 20 And aZ <= 24 Then
Wohnung = 3
ElseIf aZ >= 25 And aZ <= 29 Then
Wohnung = 4
...
...
geht bis 110
Ich denke, ich hätte es auch so machen können:
Select Case az
case is < 10
Wohnung = 0
Case 10 to 14
Wohnung = 1
Case 15 to 19
Wohnung = 2
Case 20 to 24
Wohnung = 3
...
Ist das richtig? Die Wohnung kann nicht in dieselbe Zeile wie Case oder?
Vielen Dank fürs Lesen und Antworten!
liebe e-Grüße
Elmar
====================================
Die erstaunliche und absolut umwerfende Wahrheit über den 11.09.01
www.elfterseptember.info

 |
Betrifft: AW: Select Case <-> If then elseif else
von: ChrisL
Geschrieben am: 22.09.2003 16:15:10
Hi Elmar
In der Ausführung gibt es eigentlich keinen Unterschied, die Wahl ob Select Case oder If Then ist also nur kosmetisch.
Für den vorliegenden Fall erachte ich Select Case aber als schöner.
Würdest du z.B. eine Zelle in einer Mappe überprüfen anstatt der Variable AZ
If Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") < 10 Then
Wohnung = 0
ElseIf (Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") >= 10 And Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") <= 14) Then
Wohnung = 1
ElseIf (Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") >= 15 And Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") <= 19) Then
Wohnung = 2
ElseIf Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") >= 20 And Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1") <= 24 Then
Wohnung = 3
Da wäre Select Case wohl schöner...
Select Case Worksheets("Mappe1.xls").Worksheets("Tabelle1").Range("A1")
case is < 10
Wohnung = 0
Case 10 to 14
Wohnung = 1
Case 15 to 19
Wohnung = 2
Case 20 to 24
Wohnung = 3
Zugegeben, ein bischen überspitzt, aber ich denke es ist klar was gemeint ist.
Case 20 To 24: Wohnung = 3
müsste eigentlich auch gehen
Gruss
Chris