VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

Bezüge auf Namen in anderen Mappen aufheben

Gruppe

Allgemein

Bereich

Name

Thema

Bezüge auf Namen in anderen Mappen aufheben

Problem

Wie kann ich mir Namensverknüpfungen auf anderen Arbeitsmappen anzeigen lassen und diese auf Wunsch löschen?

Lösung

Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.




StandardModule: basMain

Sub DeleteLinkNames()
   Dim nmeLink As Object
   Dim intCounter As Integer, intStart As Integer
   Dim strMsg As String, strBook As String, strWks As String
   Dim strRng As String
   Dim bln As Boolean
   bln = True
   For Each nmeLink In ActiveWorkbook.Names
      If InStr(nmeLink.RefersTo, "[") > 0 Then
         bln = False
         intCounter = InStr(nmeLink.RefersTo, "[") + 1
         intStart = InStr(nmeLink.RefersTo, "]") - 1
         strBook = Mid(nmeLink.RefersTo, intCounter, intStart - intCounter + 1)
         intCounter = InStr(nmeLink.RefersTo, "!")
         strWks = Mid(nmeLink.RefersTo, intStart + 2, intCounter - intStart - 2)
         If Right(strWks, 1) = "'" Then
            strWks = Left(strWks, Len(strWks) - 1)
         End If
         strRng = Mid(nmeLink.RefersTo, intCounter + 1, Len(nmeLink.RefersTo))
         strMsg = "Name: " & UCase(nmeLink.Name) & Chr(13) & _
            "Arbeitsmappe: " & UCase(strBook) & Chr(13) & _
            "Tabellenblatt: " & UCase(strWks) & Chr(13) & _
            "Bezug: " & strRng & Chr(13) & Chr(13) & _
            "Name löschen?"
         If MsgBox(strMsg, 292) = vbYes Then
             nmeLink.Delete
         End If
      End If
   Next nmeLink
   If bln = True Then
       MsgBox "Keine Namen gefunden, die auf eine" & Chr(13) & _
           "andere Arbeitsmappe verweisen!"
   End If
End Sub

    


Beiträge aus dem Excel-Forum zu den Themen Allgemein und Name