PDA

Vollständige Version anzeigen : If ElseIf Else Abfrage


Timo T.
02.08.2012, 09:33
Hallo zusammen,

was müsste denn bei folgendem Code passieren?

pSheet ist in diesem Fall 3.


If pSheet <> "" Then

ElseIf pSheet > 1 Then
pSheet = 1
Else
pSheet = 1
End If

Die If Abfrage nimmt er noch mit, aber das ElseIf wird irgendwie komplett ignoriert. Was muss ich ändern damit das Elseif auch überprüft wird? pSheet soll auf 1 gesetzt werden. (Es wäre einfacher pSheet gleich auf 1 zu setzen, aber für spätere Ergänzungen lohnt das nicht).

Vielen Dank

Gruß Timo

M Merlin
02.08.2012, 09:53
Ich denke du möchtest folgendes:
Wenn in pSheet was drin steht soll nachgeschaut werden ob pSheet > 1 ist oder nicht. Je nach dem soll was getan werden...

Wenn ich das so richtig interpretiert habe sollte folgendes funktionieren:


If pSheet <> "" Then
If pSheet > 1 Then
pSheet = 1
Else
pSheet = 1
End If
End If

mücke
02.08.2012, 10:04
Moin,

würde da nicht auch
If psheet <> "" Then
If psheet > 1 Then
psheet = 1
End If
End If
ausreichen?

M Merlin
02.08.2012, 10:11
Was wäre, wenn pSheet z.B. -1 oder 0 hätte, dann benötigt man die Else...


Aber wir wissen ja nicht was Timo möchte...!!
Das muss er schon selber definieren...

Timo T.
02.08.2012, 10:13
Moin,

würde da nicht auch
If psheet <> "" Then
If psheet > 1 Then
psheet = 1
End If
End If
ausreichen?


Da würde ja aber nix passieren wenn pSheet = Leer ist oder?

Im ersten Durchlauf ist pSheet Leer, da soll dann pSheet auf 1 gesetzt werden. Im Anschluss wird eine Tabelle durchsucht und ja nach Anzahl der Tabellenblätter erhöht sich pSheet. Das ganze ist in einer Schleife so das nun eine weitere Tabelle drankommt und dafür muss pSheet natürlich wieder auf eins gesetzt werden.

Nochmal für mein Verständnis eine Frage: <> bedeutet ungleich (in C dürfte das != sein) und "" für eine nicht gefüllte Variable oder?

Danke :)

M Merlin
02.08.2012, 10:25
Nochmal für meine Verständnis eine Frage: <> bedeutet ungleich
ja. Ist erfüllt wenn nichts in der Variabeln steht

Im ersten Durchlauf ist pSheet Leer, da soll dann pSheet auf 1 gesetzt werden. Im Anschluss wird eine Tabelle durchsucht und ja nach Anzahl der Tabellenblätter erhöht sich pSheet. Das ganze ist in einer Schleife so das nun eine weitere Tabelle drankommt und dafür muss pSheet natürlich wieder auf eins gesetzt werden.


Wenn ich das jetzt verstehe, soll in jedem Fall, ob nichts in pSheet steht oder ein Wert... es soll pSheet immer auf 1 gesetzt werden oder...???

Dann benötigst du gar keine Abfrage, dann reicht pSheet = 1 aus...

Timo T.
02.08.2012, 10:29
Hallo M Merlin,

ja wie gesagt pSheet=1 wäre das einfachste. Aber für spätere Fälle wollte ich eine If Abfrage einbasteln :)

M Merlin
02.08.2012, 10:48
Dann noch mal nen Versuch...



If pSheet <> "" Then
If pSheet > 1 Then
pSheet = 1
Else
pSheet = 1
End If
Else
pSheet = 1
End If


Was hälst du davon...???

Timo T.
02.08.2012, 11:41
Ja danke, das läuft perfekt so :)