Hallo Karl Heinz,
nur mal ein paar Gedanken:
- Warum hast du überhaupt wb2.Save da drin? Macht das Sinn, so direkt nach dem Öffnen? So schnell kann kein Mensch eine Namensänderung im Explorer machen. Das müsste in derselben Sekunde erfolgen.
- Kann es vielleicht sein, dass dein Array auch Vorlagen zurückgiebt, die auf .xltx enden? Mit Workbook.Open dürfte da eine neue Datei erzeugt werden, die noch keinen eigenen Pfad hat und somit im Standardpfad landet. Normalerweise verhält sich der Befehl in diesem Fall wie Workbook.SaveAs, öffnet also ein Dialogfenster. Aber vielleicht ist das ja bei dir anders.
- Warum hast du Set wb2 und alle Folgebefehle außerhalb der If-Bedingung? Wenn du einen Pfad wählst, in dem sich auch die Makro-Datei selbst befindet, kopierst du die Daten der Makro-Datei nach sich selbst (wb2=wb1!). Falls du das nicht willst, setze End If erst vor Next ii.
- Kann der gewählte Filepath vielleicht auch mal Unterpfade enthalten in denen sich ebenfalls Excel-Dateien befinden? Und hast du für diesen Fall geprüft, ob deine Benutzerfunktion korrekt arbeitet? In diesem Fall muss der Rückgabewert im Array vor dem Dateinamen auch den entsprechenden Unterpfad zurückgeben. Wird stattdessen nur der Dateiname zurückgegeben, erhälst du einen Fehler.
- Den Fehler siehst du dann aber nicht, da dein ERRORHANDLER anspringt. Was macht der genau?
Gruß Mr. K.
|