ActiveWorkbook.LinkSources: Verknüpfungen gezielt aktualisieren
Schritt-für-Schritt-Anleitung
Um nur bestimmte Verknüpfungen in einem Excel-Dokument mit VBA zu aktualisieren, kannst du das folgende Makro verwenden. Es ermöglicht dir, spezifische Zellbereiche auszuwählen, deren Verknüpfungen aktualisiert werden sollen.
Private Sub CommandButton1_Click()
Dim var As Variant
Dim iCounter As Integer
Dim sName As String
' Pfad anpassen
ChDrive ("D:\")
ChDir ("D:\excel\report")
sName = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "Bitte die Datei auswählen die aktualisiert werden soll")
If sName = "Falsch" Then Exit Sub
var = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(var) Then
' Aktualisiere nur die Links aus den Zellen C12, C13 und C14
Dim linksToUpdate As Variant
linksToUpdate = Array("C12", "C13", "C14")
For iCounter = LBound(linksToUpdate) To UBound(linksToUpdate)
Dim linkName As String
linkName = Range(linksToUpdate(iCounter)).Value
If Not IsEmpty(linkName) Then
ActiveWorkbook.ChangeLink Name:=linkName, newname:=sName
End If
Next iCounter
End If
End Sub
Dieses Makro verwendet die ActiveWorkbook.LinkSources Funktion, um alle Links im Arbeitsbuch abzurufen. Es aktualisiert dann nur die Links, die in den Zellen C12, C13 und C14 angegeben sind.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du keine VBA-Makros verwenden möchtest, kannst du die Verknüpfungen auch manuell über die Excel-Benutzeroberfläche aktualisieren. Gehe hierzu zu:
- Daten > Abfragen und Verbindungen > Verknüpfungen bearbeiten
- Wähle die Verknüpfungen aus, die du aktualisieren möchtest, und klicke auf Ändern.
Praktische Beispiele
Ein praktisches Beispiel wäre, wenn du mehrere Excel-Dokumente hast, die auf verschiedene Datenquellen verweisen. Du kannst die oben vorgestellte VBA-Lösung anpassen, um gezielt nur die Verknüpfungen zu aktualisieren, die für deinen aktuellen Bericht relevant sind.
Tipps für Profis
-
Nutze die Debug.Print Anweisung, um den Fortschritt während der Ausführung des Makros zu verfolgen. Dies hilft dir, Fehler zu identifizieren.
-
Experimentiere mit anderen Zellbereichen oder füge Logik hinzu, um die Verknüpfungen basierend auf bestimmten Bedingungen zu aktualisieren.
-
Wenn du regelmäßig mit ActiveWorkbook.LinkSources arbeitest, erstelle eine benutzerdefinierte Funktion, um häufig wiederkehrende Aufgaben zu automatisieren.
FAQ: Häufige Fragen
1. Wie kann ich alle Verknüpfungen gleichzeitig aktualisieren?
Du kannst die ActiveWorkbook.UpdateLink Methode verwenden, um alle Links im Arbeitsbuch auf einmal zu aktualisieren.
2. Was passiert, wenn die Zellwerte in C12, C13 und C14 leer sind?
Wenn die Zellen leer sind, wird das Makro diese Links ignorieren und keine Aktualisierung durchführen. Stelle sicher, dass sie gültige Linknamen enthalten.