Was genau ist das Problem?
Welchen Wert hält Deine Variable AG zur Laufzeit?
Nimm Dein Makro mal zeilenweise (F8) unter die Lupe und schau Dir an, welche Werte wann bzw wieso zustandekommen.
Tipp:
Wenn Du die .Find()-Methode nicht in einer Schleife anwendest (wovon ich im Moment ausgehe, da Du oben nichts vom Schleifen schreibst), überlege Dir, ob Du nicht besser die Methode Application.WorksheetFunktion.Match() anstelle von .Find() anwenden möchtest.
Noch besser wäre dann (anstelle WorksheetFunction.Match), das Ergebnis der Methode Application.Match() in einer Variant Variablen zu speichern. So kannst Du gleich auswerten, ob zur Laufzeit ein Fehler geworfen wurde. In der Onlinehilfe wirst Du zu Application.Match() nichts finden, wird aber gleich gefüttert wie die Application.WorksheetFunction.Match()
Vorteil:
Du kannst den Rückgabewert von Application.Match() auswerten. Entweder das begehrte Ergebnis oder eine Fehlermeldung. Aber, Dein Programm kann weiter laufen.
Tipp2:
Wenn es Dir lediglich darum geht Informationen (abgespeckt) abzubilden, kannst Du dazu auch SQL einsetzen.
Wie das grundsätzlich aussehen könnte, kannst Du mal hier (einsteigend) nachlesen Online - Excel Programmierung VBA Makro: ADO und Excel (1) - Kleines Vorwort und Einstieg
|