Select Case <-> If then elseif else

Bild

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

Bild


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


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Select Case <-> If then elseif else"