wie ich kann den Zellennamen einer einzelnen Zelle per VBA erzeugen ?
Vielen Dank,
Gordon
ActiveWorkbook.Names.Add Name:="Meinname", RefersTo:="=Tabelle1!$A$1"
Sub NameSetzen()
Dim z As Integer, s As Integer
z = 1 'Zeile 1
s = 5 'Spalte 5
ActiveWorkbook.Names.Add Name:="Meinname", RefersTo:="=Tabelle1!" & Cells(z, s).Address
End Sub
'Prüft, ob Bereich einen Namen hat und gibt ihn zurück (sonst""):
Function HatNamen(b As Range) As String
Dim n As String
On Error Resume Next
n = Names(, , CStr(b.Name)).Name
If Err.Number > 0 Then
HatNamen = ""
Exit Function
Else
HatNamen = n
End If
End Function
Sub Checkname()
Dim n As String
n = HatNamen(ActiveCell)
If n = "" Then
MsgBox "kein Name"
Else
MsgBox n
End If
End Sub
Gruß MatthiasUm den Zellenname in Excel per VBA zu bestimmen, kannst Du folgende Schritte befolgen:
Makro-Recorder verwenden:
Alt + F11, um den VBA-Editor zu öffnen.Einen Zellenname hinzufügen:
ActiveWorkbook.Names.Add Name:="Meinname", RefersTo:="=Tabelle1!$A$1"Zellenname variabel halten:
Sub NameSetzen()
Dim z As Integer, s As Integer
z = 1 'Zeile 1
s = 5 'Spalte 5
ActiveWorkbook.Names.Add Name:="Meinname", RefersTo:="=Tabelle1!" & Cells(z, s).Address
End SubZellenname löschen:
ActiveWorkbook.Names("Meinname").DeleteFehler beim Überprüfen des Zellennamens: Wenn Du versuchst, einen Zellenname zu überprüfen, und n = "" zurückgibst, stelle sicher, dass Du die richtige Syntax verwendest:
Function HatNamen(b As Range) As String
Dim n As String
On Error Resume Next
n = ActiveWorkbook.Names(, , CStr(b.Name)).Name
If Err.Number > 0 Then
HatNamen = ""
Exit Function
Else
HatNamen = n
End If
End Function
Anwendungsfehler: Wenn Du einen Fehler wie "Anwendungs- oder objektdefinierter Fehler" erhältst, überprüfe, ob der Zellenname tatsächlich existiert und ob Du einen gültigen Bereich übergibst.
Eine weitere Möglichkeit, den Zellenname zu bestimmen, besteht darin, die Excel.Worksheet.Names-Sammlung zu verwenden. Damit kannst Du alle definierten Namen auflisten:
Sub AlleNamenAuflisten()
Dim n As Name
For Each n In ActiveWorkbook.Names
Debug.Print n.Name & " = " & n.RefersTo
Next n
End Sub
Diese Methode kann hilfreich sein, um einen Überblick über alle Zellenamen in Deiner Arbeitsmappe zu erhalten.
Zellenname abrufen:
Sub ZellennameAbrufen()
Dim n As String
n = HatNamen(Range("A1"))
If n = "" Then
MsgBox "Kein Name"
Else
MsgBox "Der Zellenname ist: " & n
End If
End Sub
Zellenname löschen, wenn nur der Bezug bekannt ist:
Sub ZellennameLoeschen()
Dim zelle As Range
Set zelle = Range("$A$1")
Dim nameToDelete As String
nameToDelete = HatNamen(zelle)
If nameToDelete <> "" Then
ActiveWorkbook.Names(nameToDelete).Delete
MsgBox "Zellenname gelöscht: " & nameToDelete
Else
MsgBox "Kein Zellenname gefunden."
End If
End Sub
RefersTo-Eigenschaft, um dynamische Bezüge zu erstellen. Mit Range("A" & i) kannst Du beispielsweise auf unterschiedliche Zeilen zugreifen.excel zellenname zu erstellen oder zu ändern.1. Wie kann ich einen Zellenname in Excel löschen? Um einen Zellenname zu löschen, verwende den Code:
ActiveWorkbook.Names("Meinname").Delete
2. Kann ich einen Zellenname mit Bezug auf eine Zelle erstellen?
Ja, das geht. Du kannst den Zellenname mit der RefersTo-Eigenschaft und der Address-Funktion dynamisch erstellen.
3. Wie finde ich den Zellenname einer bestimmten Zelle?
Nutze die Funktion HatNamen, um den Zellenname einer bestimmten Zelle zu überprüfen.