Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 9 und wirre Variablenwerte

Laufzeitfehler 9 und wirre Variablenwerte
Alex
Ich beschäftige mich momentan mit verschachtelten Schleifen zur Optimierung von Wegen im Traveling Salesman Problem. Nun habe ich einen Ansatz entwickelt, der so in etwa auch funktionieren könnte, allerdings macht mir ein Laufzeitfehler 9 große Probleme, der mich heute schon mehr als die Hälfte meiner Belastbarkeit gekostet hat.
Hier der relevante Teil des Codes:
dim x, k, l, y as integer
dim umweg, weg,wegvor as single
dim str(100,100) as single
dim arrstnum as range
x = 1
k = 3
Do
Do
If Weg wegVor = Weg
End If
y = x + 1
l = k + 1
umWeg = (str(x, y) + str(k, l) - str(x, l) - str(k, y))
For m = 1 To StMax
For n = 1 To StMax
If x = arrStNum(m) And k = arrStNum(n) And umWeg > 0 Then
arrStNum(m) = k
arrStNum(n) = x
Weg = str(arrStNum(1), arrStNum(2)) + str(arrStNum(2), arrStNum(3)) + str(arrStNum(3), arrStNum(4)) + str(arrStNum(4), arrStNum(5)) + str(arrStNum(5), arrStNum(6)) + str(arrStNum(6), arrStNum(1))
End If
Next n
Next m
x = x + 1
Loop Until x = 6
k = k + 1
Loop Until k = 6
Das Problem: durch die Schleifenbedingungen habe ich ja festgelegt, dass er x bis 6 loopen soll, oben habe ich definiert, dass x zu anfang 1 ist.
Er steigt allerdings jedes mal wieder mit einem Laufzeitfehler 9 aus und sagt, dass x 100 und y somit 101 ist und damit nicht in die str-Bedingungen passen. Woran kann das liegen? Ich bin mittlerweile mit den Nerven am Ende.
Danke für Hilfe
Alex

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 9 und wirre Variablenwerte
06.01.2011 12:13:12
mpb
Hallo Alex,
wenn die innere Do-Schleife den Wert x=6 erreicht, wird sie wie vorgesehen beendet. Die äußere Schleife wird dann erneut für k=4 durchlaufen. Dann hat x aber schon den Wert 6 und der wird in der Zeile
x = x + 1
auf 7 erhöht, so dass die nachfolgende Prüfung
Loop Until x = 6
nie mehr erfüllt sein kann. Daher wird die Schleife bis x=100 durchlaufen und bringt dann den Laufzeitfehler 9.
Wenn x für jede äußere Schleife in der inneren Schleife die Werte 2 bis 6 durchlaufen soll, musst Du die letzten Zeilen so ändern (x auf 1 zurücksetzen):
k = k + 1
x = 1
Loop Until k = 6
Gruß
Martin
Anzeige
AW: Laufzeitfehler 9 und wirre Variablenwerte
06.01.2011 12:29:54
Alex
Daran hätte ich nun wohl nocht Jahre gesessen : )
Vielen Dank.
Problem ist jetzt nur noch, dass der Ansatz nicht funktioniert.. aber immerhin ist der Laufzeitfehler beseitigt.
Grüße
Alex

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige