Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array Code versagt

Array Code versagt
siegfried
Hallo zusammen,
den nachfolgenden Code habe ich an anderer Stelle schon ohne Beanstandung genutzt.
Jetzt erhalte ich eine Fehlermeldung (Index außerhalb des gültigen Bereichs).
Was ist diesmal falsch ?
Gruß Siegfried
Sub ZiffernSammlung()
Application.Calculation = xlCalculationManual
Dim Einträge As Single, SchleifenZahl As Single, Zähler As Single
Dim SammlungNr1 As Integer, SammlungNr2 As Integer, SammlungTreffer As Single
Dim SammlungArr() As Variant
Einträge = WorksheetFunction.Count(Columns(Range("A:A").Column))
SchleifenZahl = WorksheetFunction.Combin(Einträge, 2)
SammlungTreffer = 0
ReDim SanmmlungArr(1 To Einträge)
' startet die Suche
For Zähler = 1 To SchleifenZahl
If Range("BH1").Offset(Zähler, 0).Value = "" Then
Else
' notiert die Ziffern der Fundstelle
SammlungNr1 = CInt(Left(Range("BH1").Offset(Zähler, 0).Value, _
WorksheetFunction.Find(Chr(6), Range("BH1").Offset(Zähler, 0).Value) - 1))
SammlungNr2 = CInt(Right(Range("BH1").Offset(Zähler, 0).Value, _
Len(Range("BH1").Offset(Zähler, 0).Value) - _
WorksheetFunction.Find(Chr(6), Range("BH1").Offset(Zähler, 0).Value)))
End If
If SammlungArr(SammlungNr1) = 0 And SammlungArr(SammlungNr2) = 0 Then
' SammlungTreffer hochzählen
SammlungTreffer = SammlungTreffer + 1
' gefundene Werte ins SammlungArray aufnehmen
SammlungArr(SammlungNr1) = SammlungNr1
SammlungArr(SammlungNr2) = SammlungNr2
End If
Next Zähler
Application.Calculation = xlCalculationAutomatic
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Wieso ArrayCode für eine (fast) ganz normale...
05.03.2010 03:47:46
Luc:-?
…VBA-Subroutine, Siegfried?
1. Application.Calculation = xlCalculationManual würde ich erst machen, nachdem ich den Altzustand in eine Variable gespeichert hätte, deren Wert ich am Ende des Pgms wieder zuweise — statt Application.Calculation = xlCalculationAutomatic.
2. Einträge = WorksheetFunction.Count(Columns(Range("A:A").Column)) → recht merkwürdige Konstruktion, …Count(Range("A:A")) würde doch reichen…!?
3. Diverse Deklarationen As Single, wo As Long eigentl richtiger wäre. Eigentl kann auch As Integer durch As Long ersetzt wdn. Soll schneller sein, weil wohl eine Prüfung entfällt (sollte aber nicht der Fehlerverursacher sein!).
4. Warum If Range("BH1").Offset(Zähler, 0).Value = "" Then Else, <> "" ohne Else hätte es doch auch getan? Nur bei If IsError(…) Then kann so etwas erforderlich sein!
Fazit: Sonst ist nichts feststellbar, was diesen Fehler verursachen könnte, es sei denn, mind 1 Treffer wäre ≤0 bzw >Einträge. Außerdem könnten ggf auch .Offset-Parameter Grenzwerte überschreiten. Das kannst du testen, indem du als 1.Befehl nach der Deklaration On Error GoTo fx und vor End Sub fx: Stop: Resume Next einträgst. Bei Fehler hält so das Pgm an und du kannst schrittweise fortsetzen. Durch Resume Next wird dann beim Folgebefehl des Fehlerverursachers fortgesetzt. Eigentlich müsste aber dein Pgm auch so an dieser Stelle anhalten, wenn du auf Debug der Meldung klickst. Diese Info hast du uns hier vorenthalten. Dann mal mit der Maus über die Variablen fahren (wird der aktuelle Wert angezeigt!) und du solltest wissen, was los ist. Wird also wohl an deinen Daten liegen!
Gruß Luc :-?
Anzeige
AW: Wieso ArrayCode für eine (fast) ganz normale...
05.03.2010 11:47:59
siegfried
Hallo Luc
Danke für Deine Bemühung (zu wirklich später Stunde).
An meinen Daten liegt es auch nicht. Zum Glück kommt man auch auf anderen Wegen weiter.
Gruß Siegfried
Frühe Std! Andere Wege - wie darf man das...
05.03.2010 16:05:11
Luc:-?
…verstehen, Siegfried? Als erledigt oder was…? Fehler gefunden?
Wenn du andere Wege kennst bzw beschritten hast, warum fragst du dann hier und stiehlst uns/mir Zeit?
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige