Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Narale
Anmeldungsdatum: 23.11.2009 Beiträge: 2
|
Verfasst am: 23.11.2009 14:24:31 Titel: [VBScript] If.. else Abfrage macht seltsame Dinge |
|
|
Hallo zusammen
Ich muss in einem Excelsheet aus zwei Worksheets den jeweils letzten Wert in Spalte A auslesen (sie sehen so aus: 122-2009)
Gut, das funktioniert soweit auch.
Dann splitte ich diese Werte, und zwar dort, wo das - ist, so dass ich zwei Arrays habe;
Die beiden Arraypositionen 0 (also arr(0) und arr2(0)) wandle ich danach in den Typ Long um, um diese beiden Werte zu vergleichen.
Gut, das Ganze sieht so aus:
Code: |
Public Sub auftragsnr()
'Call Workbook_Open
high1 = ws1.Cells(Rows.Count, 1).End(xlUp)
high2 = ws2.Cells(Rows.Count, 1).End(xlUp)
highest1 = Split(high1, "-")
highest2 = Split(high2, "-")
highest1(0) = CLng(highest1(0))
highest2(0) = CLng(highest2(0))
If highest1(0) > highest2(0) Then
nxt = highest2(0) + 1
End If
If highest2(0) <= highest1(0) Then
nxt = highest1(0) + 1
End If
End Sub
|
Das Problem ist jetzt, dass nxt IMMER dem Wert von highest2(0) entspricht, auch dann, wenn highest1(0) eigentlich grösser wäre.
Ich seh aber irgendwie das Problem nicht..!
Wäre froh um rasche Hilfe, wenn ich das so sagen darf...
Liebe Grüsse |
|
Nach oben |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 23.11.2009 15:38:09 Titel: Re: [VBScript] If.. else Abfrage macht seltsame Dinge |
|
|
Problem gefunden:
Narale hat folgendes geschrieben: |
Code: |
If highest1(0) > highest2(0) Then
nxt = highest2(0) + 1
End If
If highest2(0) <= highest1(0) Then
nxt = highest1(0) + 1
End If
|
|
Du hast hier doppelt gemoppelt gearbeitet. Mal umgeschrieben:
Falls highest1 größer als highest2, sei nxt= highest2(0) + 1
Falls highest1 größer gleich als highest2, sei nxt= highest1(0) + 1
Am besten du reduzierst das ganze auf eine einzige Abfrage mit einem Else-zweig.
mfG Hase |
|
Nach oben |
|
|
Narale
Anmeldungsdatum: 23.11.2009 Beiträge: 2
|
Verfasst am: 23.11.2009 16:06:05 Titel: |
|
|
Hm, ne das war's nicht.
Hab da nen falschen Code gepostet... Hatte da was versucht und nicht mehr vollständig zurückgesetzt.
Eigentlich sah es so aus (so schematisch):
Code: |
if arr1(0) < arr2(0) then
nxt = arr2(0)
End if
if arr1(0) >= arr2(0) then
nxt = arr1(0)
end if |
Else if hab ich beim testen verhauen, darum zwei If.
Aber gut, das Problem war schlussendlich die Konvertierung, glaube ich.
Hab das arr1(0) = CLng(arr1(0)) umgeschrieben zu hi1 = CLng(arr1(0)).
Danke dennoch!
LiGrü |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|