[XL2003 SP3] Nicht vorhandenen Verweis "entfernen" per VBA

12/03/2009 - 20:38 von Jörg Eisenträger | Report spam
Hallo,

bei einem unserer Datenbanksysteme wurde in einer neuen Version die
VBA-API geàndert. :-(
In bestimmten Exceldateien muss deshalb jetzt ein neuer Verweis
eingebunden werden. In den Vorlagen für neue Dateien haben wir das
gemacht, kein Problem.

Beim Öffnen von alten Dateien möchte ich die Verweise per Makro
austauschen, wenn der neue noch nicht drin ist. Dabei entsteht das
Problem, das der alte Verweis in der Verweisliste oft wie folgt
angegeben ist:
[X] NICHT VORHANDEN: VerweisNameAlt

In einer Schleife zur Auflistung der Verweisnamen, z. B.
For i = 1 To ActiveWorkbook.VBProject.References.Count
MsgBox ActiveWorkbook.VBProject.References(i).Name
Next i
führt der Eintrag "NICHT VORHANDEN: VerweisNameAlt" zu einem
Laufzeitfehler bei der Ermittlung der Name-Eigenschaft. Obwohl er in
References.Count mitgezàhlt wird, hat er offenbar keinen richtigen
Namen.

Wie kann ich den Index oder Namen(?) dieses angekreuzten Eintrags per
VBA ermitteln, um den Eintrag dann zu entfernen (z. B. mit
.References.Remove .References(i) )?


Gruß
Jörg
LPs auf CD brennen - so geht's: http://www.joergei.de/
E-Mail-Adresse existiert, wird aber nicht gelesen.
 

Lesen sie die antworten

#1 Michael v. Fondern
12/03/2009 - 21:00 | Warnen spam
Hallo Jörg,
In einer Schleife zur Auflistung der Verweisnamen, z. B.
For i = 1 To ActiveWorkbook.VBProject.References.Count
MsgBox ActiveWorkbook.VBProject.References(i).Name
Next i
führt der Eintrag "NICHT VORHANDEN: VerweisNameAlt" zu einem
Laufzeitfehler bei der Ermittlung der Name-Eigenschaft. Obwohl er in
References.Count mitgezàhlt wird, hat er offenbar keinen richtigen
Namen.

Wie kann ich den Index oder Namen(?) dieses angekreuzten Eintrags per
VBA ermitteln, um den Eintrag dann zu entfernen (z. B. mit
.References.Remove .References(i) )?



ohne es getestet zu haben: hast du schon mal versucht,
Application.DisplayAlerts = False
zu setzen, bevor du den obigen Aufruf machst?

(anschließend
Application.DisplayAlerts = True
nicht vergessen)

Grüße

- Michael -

Ähnliche fragen