Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einen bestimmten Namen definieren u. Wert zuweisen

Einen bestimmten Namen definieren u. Wert zuweisen
27.10.2008 16:47:13
Peter
Guten Abend
In meinem Code verwende ich in einem Code den Namen "Anzahl", dem in der Regel mittels "Namen definieren" eine Zahl zugewiesen wurde.
Es kann vorkommen, dass dies in einzelnen Workbooks nicht der Fall ist. In diesem Fall möchte ich diesen Namen kreieren und den Wert 100 zuweisen (und dann in einem weiteren Schritt auch der Long-Variable "ZeichenAnzahl1" zuweisen).
Mit nachfolgendem Code ( Then ThisWorkbook.Names("Anzahl").Value = 100 ) bin ich gescheitert.
If IsError(ZeichenAnzahl1 = Mid(ThisWorkbook.Names("Anzahl"), 2, 3)) Then ThisWorkbook.Names("Anzahl").Value = 100
Wer kann mir helfen?
Danke, Peter
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einen bestimmten Namen definieren u. Wert zuwe
27.10.2008 17:21:00
Matthias
Hallo
so ?
...Then Worksheets(1).Range("Anzahl").Value = 100
Gruß Matthias
AW: Einen bestimmten Namen definieren u. Wert zuweisen
27.10.2008 17:26:53
Luschi
Hallo Peter,
so funktioniert es:
ThisWorkbook.Names("Anzahl").Value = 1001
MsgBox CLng(Mid(ThisWorkbook.Names("Anzahl").Value, 2)) + 10
MsgBox CLng(Mid(ThisWorkbook.Names("Anzahl").RefersTo, 2)) + 4
MsgBox [Anzahl] + 8
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Einen bestimmten Namen definieren u. Wert zuweisen
27.10.2008 17:40:39
Peter
Guten Abend
Vielen Dank für die Antworten.
Das Problem war, dass "nicht gewährleistet ist", dass "Zeichenprozeile1" in meinem Workbook schon besteht und dass wenn dies nicht der Fall ist, ich mit ISERROR einen Laufzeitfehler erhalte und nicht eine Abfrage machen kann.
Ich habe nun eine Funktion gefunden, die prüft, ob ein bestimmter Name existiert. Existiert er nicht, erhalte ich FALSE zurück, dann kann ich den Namen definieren und den Standardwert 100 zuweisen. Diesen Wert oder einen bereits bestehenden Wert übergebe ich dann der Variable "Zeichenanzahl".
Gruss, Peter
..
If NameExists("Anzahl") = False Then ThisWorkbook.Names.Add Name:="Anzahl", RefersTo:="=100"
ZeichenAnzahl1 = Mid(ThisWorkbook.Names("Anzahl"), 2, 3)
..

Public Function NameExists(TheName As String) As Boolean
On Error Resume Next
NameExists = Len(ThisWorkbook.Names(TheName).Name)  0
End Function


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Einen Namen in Excel definieren und einen Wert zuweisen


Schritt-für-Schritt-Anleitung

  1. Namen definieren: Um einen Namen in Excel zu definieren, kannst Du die Methode ThisWorkbook.Names.Add verwenden.

    ThisWorkbook.Names.Add Name:="Anzahl", RefersTo:="=100"
  2. Wert zuweisen: Um einem definierten Namen einen Wert zuzuweisen, kannst Du einfach auf den Namen zugreifen und den Wert ändern.

    ThisWorkbook.Names("Anzahl").Value = 100
  3. Funktion zur Überprüfung, ob ein Name existiert: Um sicherzustellen, dass der Name nicht bereits existiert, erstelle eine Funktion:

    Public Function NameExists(TheName As String) As Boolean
       On Error Resume Next
       NameExists = Len(ThisWorkbook.Names(TheName).Name) > 0
    End Function
  4. Verwendung der Funktion: Nun kannst Du diese Funktion nutzen, um zu überprüfen, ob der Name bereits existiert, und falls nicht, kannst Du ihn definieren:

    If Not NameExists("Anzahl") Then
       ThisWorkbook.Names.Add Name:="Anzahl", RefersTo:="=100"
    End If

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler beim Zugriff auf einen nicht definierten Namen

    • Lösung: Verwende die Funktion NameExists, um zu prüfen, ob der Name vorhanden ist, bevor Du versuchst, auf ihn zuzugreifen.
  • Fehler: Der Wert des Namens wird nicht korrekt zugewiesen

    • Lösung: Stelle sicher, dass Du den Wert mit ThisWorkbook.Names("Anzahl").Value = 100 zuweist und dass der Name korrekt definiert ist.

Alternative Methoden

  • Namen über das Excel-Menü definieren: Du kannst auch Namen über das "Formeln"-Menü in Excel definieren. Gehe zu "Formeln" > "Namensmanager" und füge dort einen neuen Namen hinzu.

  • VBA-Array verwenden: Anstatt einen Namen zu definieren, kannst Du auch ein VBA-Array verwenden, um Werte zu speichern, wenn Du nur temporäre Werte benötigst.


Praktische Beispiele

  • Beispiel 1: Definiere einen Namen und weise einen Wert zu.

    Sub Beispiel()
       If Not NameExists("Anzahl") Then
           ThisWorkbook.Names.Add Name:="Anzahl", RefersTo:="=100"
       End If
       MsgBox ThisWorkbook.Names("Anzahl").Value
    End Sub
  • Beispiel 2: Verwende den Namen in einer Berechnung.

    Sub Berechnung()
       If Not NameExists("Anzahl") Then
           ThisWorkbook.Names.Add Name:="Anzahl", RefersTo:="=100"
       End If
       Dim ZeichenAnzahl1 As Long
       ZeichenAnzahl1 = ThisWorkbook.Names("Anzahl").Value + 50
       MsgBox ZeichenAnzahl1
    End Sub

Tipps für Profis

  • Nutze thisworkbook.names um einen übersichtlichen Zugriff auf alle definierten Namen in Deinem Workbook zu haben.
  • Halte Deine Namen konsistent und beschreibend, um die Wartung Deines VBA-Codes zu erleichtern.
  • Denke daran, dass Excel-Namen nicht nur Zahlen, sondern auch Buchstaben und Unterstriche enthalten können.

FAQ: Häufige Fragen

1. Wie kann ich einen Namen in einem bestimmten Blatt definieren?
Du kannst einen Namen definieren, der auf einen bestimmten Bereich in einem bestimmten Blatt verweist, indem Du die Syntax Worksheets("Blattname").Range("A1") verwendest.

2. Was passiert, wenn ich versuche, einen bereits existierenden Namen zu definieren?
Excel gibt einen Laufzeitfehler aus. Daher ist es ratsam, vorher mit NameExists zu prüfen, ob der Name bereits existiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige