Names-Objekt (Excel)
Eine Auflistung aller Name-Objekte in der Anwendung oder Arbeitsmappe.
Jedes Name-Objekt stellt einen definierten Namen für einen Zellbereich dar. Namen können integriert (z. B. Datenbank, Druckbereich und Auto_öffnen) oder benutzerdefiniert sein.
Das Argument RefersTo muss in der A1-Schreibweise einschließlich eines Dollarzeichens ($) angegeben werden, sofern dies erforderlich ist. Wenn beispielsweise in Tabelle1 die Zelle A10 markiert ist und Sie mit dem RefersTo-Argument "=Tabelle1!A1:B1" einen Namen definieren, bezieht sich der neue Name auf den Zellbereich A10:B10 (da Sie einen relativen Bezug angegeben haben). Um einen absoluten Bezug anzugeben, verwenden Sie "=Tabelle1!$A$1:$B$1".
Verwenden Sie die Names-Eigenschaft des Workbook-Objekts , um die Names-Auflistung zurückzugeben. Im folgenden Beispiel wird eine Liste aller Namen in der aktiven Arbeitsmappe sowie die Adressen erstellt, auf die sie verweisen.
Set nms = ActiveWorkbook.Names
Set wks = Worksheets(1)
For r = 1 To nms.Count
wks.Cells(r, 2).Value = nms(r).Name
wks.Cells(r, 3).Value = nms(r).RefersToRange.Address
Next
Verwenden Sie die Add-Methode , um einen Namen zu erstellen und der Auflistung hinzuzufügen. Im folgenden Beispiel wird ein neuer Name erstellt, der auf die Zellen A1:C20 auf dem Arbeitsblatt mit dem Namen Sheet1 verweist.
Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20"
Verwenden Sie Names (Index), wobei index die Indexnummer oder der definierte Name ist, um ein einzelnes Name-Objekt zurückzugeben. Im folgenden Beispiel wird der Name mySortRange aus der aktiven Arbeitsmappe gelöscht.
ActiveWorkbook.Names("mySortRange").Delete
In diesem Beispiel wird ein benannter Bereich als Formel für die Datenüberprüfung verwendet. Das Beispiel erfordert die Überprüfungsdaten in Tabelle2 im Bereich A2:A100. Diese Validierungsdaten werden verwendet, um daten zu überprüfen, die in Sheet1 im Bereich D2:D10 eingegeben wurden.
Sub Add_Data_Validation_From_Other_Worksheet()
'The current Excel workbook and worksheet, a range to define the data to be validated, and the target range
'to place the data in.
Dim wbBook As Workbook
Dim wsTarget As Worksheet
Dim wsSource As Worksheet
Dim rnTarget As Range
Dim rnSource As Range
'Initialize the Excel objects and delete any artifacts from the last time the macro was run.
Set wbBook = ThisWorkbook
With wbBook
Set wsSource = .Worksheets("Sheet2")
Set wsTarget = .Worksheets("Sheet1")
On Error Resume Next
.Names("Source").Delete
On Error GoTo 0
End With
'On the source worksheet, create a range in column A of up to 98 cells long, and name it "Source".
With wsSource
.Range(.Range("A2"), .Range("A100").End(xlUp)).Name = "Source"
End With
'On the target worksheet, create a range 8 cells long in column D.
Set rnTarget = wsTarget.Range("D2:D10")
'Clear out any artifacts from previous macro runs, then set up the target range with the validation data.
With rnTarget
.ClearContents
With .Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:="=Source"
'Set up the Error dialog with the appropriate title and message
.ErrorTitle = "Value Error"
.ErrorMessage = "You can only choose from the list."
End With
End With
End Sub
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.