ich möchte beim öffnen einer Mappe ein Modul löschen und anschließend neu importieren. Ich geh diesen Weg, da wenn ich die Bas-Datei importiere ohne zuvor das entsprechende Modul zu löschen, das Modul nicht überschrieben wird, sondern als weiteres Modul hinzukommt (wird automatisch umbenannt).
Ich hab im Archive Beiträge zu dem Import und Löschen von Modulen gelesen, jedoch prüft keiner, ob das Moduk bereits existiert und geht davon aus, dass es vorhanden ist.
Bei meiner Lösung kommt es leider immer zum Laufzeitfehler 438, Methode nicht für Objekt unterstützt.
Ich nehme mal stark an, dass es daran liegt, dass ich die VBComponente falsch deklariere, aber leider finde ich keine geeigneten Objekttyp.
Was mich irritiet, dass meine If-Abfrage zulässt, die VBComponents auszulesen.
Wie muss ich die Remove-Methode richtig anwende, damit ich dies realisieren kann?
Vielen Dank im Voraus für jeglichen Tipp!
Philipp
Hier mein Code:
Private Sub Workbook_Open()
Dim strBasFileFullName As String
Dim strBasFileName As String
Dim strBasFilePath As String
Dim ModulInVBAProject As Object
strBasFilePath = "C:\"
strBasFileName = "Modul1.bas"
strBasFileFullName = strBasFilePath & strBasFileName
For Each ModulInVBAProject In ThisWorkbook.VBProject.VBComponents
If ModulInVBAProject.Name = Mid(strBasFileName, 1, Len(strBasFileName) - 4) _
Then ModulInVBAProject.Remove
Next
ActiveWorkbook.VBProject.VBComponents.Import strBasFileFullName
End Sub