Excel VBA – Verknüpfungen entfernen
Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag zeige ich Ihnen wie Sie über VBA Verknüpfungen aus Arbeitsmappen entfernen und mit Festwerten ersetzen können.
In unserer Mappe verweisen wir auf eine andere Mappe. Mit dem folgenden Makro ersetzen wir diese Verknüpfung durch Festwerte.
Zunächst deklarieren wir ein so genanntes Array, also ein Datenfeld, in den wir später alle Verknüpfungen schreiben. Das Datenfeld wird als Typ
Variant
definiert. Als Nächstes benötigen wir einen Zähler um die Einträge zu zählen.
Sub VerknuepfungFestwert() Dim ArrayV As Variant Dim CntLine As Long End Sub
Nun füllen wir das Array mit Verknüpfungen der aktiven Mappe. Die Methode LinkSources
gibt ein Array mit allen Links in der Arbeitsmappe zurück. Als Typ geben wir xlLinkTypeExcelLinks
an, das heißt die Verknüpfung führt zu einem Excel-Arbeitsblatt.
Sub VerknuepfungFestwert() Dim ArrayV As Variant Dim CntLine As Long ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks) End Sub
111 VBA Makros die Ihr Leben leichter machen
Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.
Das Datenfeld ArrayV
ist nun gefüllt. Als nächstes lesen wir den Inhalt über eine Schleife aus und ändern diesen in Festwerte um. Dazu gehen wir alle Einträge vom ersten bis zum letzten durch. Die Funktion UBound
liefert uns den letzten Eintrag.
Sub VerknuepfungFestwert() Dim ArrayV As Variant Dim CntLine As Long ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks) For CntLine = 1 To UBound(ArrayV) Next CntLine End Sub
Innerhalb der Schleife wird die Verknüpfung mit der Methode BreakLink
in einen Festwert umgewandelt.
Sub VerknuepfungFestwert() Dim ArrayV As Variant Dim CntLine As Long ArrayV = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks) For CntLine = 1 To UBound(ArrayV) ActiveWorkbook.BreakLink Name:=ArrayV(CntLine), Type:=xlLinkTypeExcelLinks Next CntLine End Sub
Führen Sie das Makro mit F5
aus und kontrollieren Sie das Ergebnis. Alle Verknüpfungen wurden durch Festwerte ersetzt.
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.
Beeindrucke deinen Chef mit coolen Excel Tricks!
- Lasse dich von deinen Kollegen nicht abhängen!
- Spare Zeit und nutze diese für angenehmere Dinge
- Steigere deine Produktivität und Effizienz
- Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
- Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.
Das Makro funktioniert nicht (mehr). Es erzeugt den Fehler: „Laufzeitfehler „13“.:
Typenkonflikt“
Gibt es dazu eine Lösung?
Hallo Sandra,
habe es gerade ausprobiert. Funktioniert bei mir einwandfrei. Ich nutze Excel 2013. Welche Version benutzt du?
Und was genau steht in deinem Link? Worauf verlinkst du?
Viele Grüße
Denis
Hallo Denis,
ich nutze Excel für MAC.
Inzwischen habe ich das „Problem“ gefunden :-)
Ich habe das Makro in einer Datei ausgeführt, in der gar keine Verlinkungen mehr enthalten waren. Dann kam die o.g. Fehlermeldung.
Hat sich also erledigt. Danke trotzdem für deine schnelle Antwort!
Gruß
Sandra
Immer gerne :)