Schlüssel schon in Collection

Hallo,

ich verwende VBA hinter Excel (Office 2007, Win XP), um die Datensätze einer Tabelle auszuwerten. Das nur zum Hintergrund.

Gestern habe ich über Stunden versucht, herauszufinden, warum dieser Laufzeitfehler ‚457‘ („Dieser Schlüssel ist bereits einem Element dieser Auflistung zugeordnet“) auftritt. Ich bin fest davon überzeugt, dass der Schlüssel, der in der Anweisung verwendet wird, noch NICHT für die Collection verwendet wurde. Deshalb neige ich diesmal eher zu unterstellen, dass das Problem nicht vor dem Monitor sitzt.

Ist jemandem dieses Verhalten bekannt? Ich dachte immer, dass man sich wenigstens auf so grundlegende Objekte wie Collections verlassen kann. Und ich suche wirklich eine Antwort auf dieses Problem und keine Workarounds!

Zu meinem konkreten Fall:
In einem Modul habe ich zuerst mein Collection-Objekt generell deklariert.

Public coll_runs As Collection

Dann habe ich in einer Funktion innerhalb eines Tabellen-Moduls die Inhalte der Tabelle zeilenweise abgearbeitet.

Die Schleife enthält folgende relevante Anweisungen:
s_run_no = ActiveSheet.Range(„C“ & i) ’ Durchlaufnummer aus Tabelle lesen
set o_run = … ’ Objekt der Nummer aus einer anderen Kollektion holen
debug.print s_run_no
coll_runs.Add o_run, s_run_no

Die Schleife bin ich im Debug-Mode mit F8 schrittweise durchgegangen und immer beim selben Objekt tritt der Fehler auf. Im Direktfenster kann ich alle Schlüssel sehen, die verwendet wurden und den, der nun verwendet werden soll. Dabei gibt es definitiv keine Duplikate. Das habe ich für den letzten Schlüssel geprüft und auch für alle Schlüssel untereinander (in Excel eingefügt, sortiert und doppelte Zeilen gesucht).

Ich habe eine Überwachung von coll_runs hinzugefügt und die Collection enthält nur die in der Schleife hinzugefügten Objekte, definitiv keine Altlasten!

Ich bin mit meinem Latein am Ende und hoffe, ihr könnt mir einen Ansatz offenbaren.

VG,
Sky

erledigt (Re: Schlüssel schon in Collection)
Hallo,

das Problem hat sich erstmal erübrigt. Als ich heute morgen nach dem Hochfahren des Notebooks am Problem weiter arbeiten wollte, wurde der Fehler plötzlich nicht mehr an der Stelle von gestern angezeigt, sondern in einer von dieser Schleife aufgerufenen Methode eines „Objekts“.

Gestern habe ich kurz zuvor ein gleichnamiges lokales Collection-Objekt im Klassenmodul der eben genannten Methode umbenannt, um Verwechslungen zu vermeiden. Damit kam VBA scheinbar nicht klar und erst der Notebook-Neustart hat die Blockade gelöst.

Gruß,
Michael