Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

[VBA] Namens-Manager > Existenzprüfung?

[VBA] Namens-Manager > Existenzprüfung?
25.03.2020 13:24:27
Nils
Hallo,
kann ich gezielt nachfragen, ob eine Variable im Namensmanager existiert?
Bisher umgehe ich es mit "on error resume next", aber das finde ich nicht so schön.
Ich möchte z.B. prüfen ob die Variable "Test" existiert:
ActiveWorkbook.Names("Test")
Wie mache ich das?
Grüße
Nils

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ganzer Code zeigen, oder Beispielmappe! (owT)
25.03.2020 13:53:19
EtoPHG

AW: [VBA] Namens-Manager > Existenzprüfung?
25.03.2020 14:00:50
ChrisL
Hi Nils
Hier noch eine Variante:
Sub t()
MsgBox NameExists("TestName")
End Sub
Private Function NameExists(strName As String) As Boolean
If Not IsError(Evaluate("=" & strName)) Then NameExists = True
End Function
cu
Chris
AW: [VBA] Namens-Manager > Existenzprüfung?
25.03.2020 14:10:43
Daniel
Hi
Ohne On Error, aber obs eleganter ist?
For each NME In activeworkbook.names
If NME.Name = "Test" then exit for
Next
If NME is nothing then
' nicht vorhanden
Else
' vorhanden
End if
Gruß Daniel
Anzeige
AW: Performance Vergleiche
25.03.2020 20:55:45
Sulprobil
Hallo,
Um fair zu sein: Daniel's Ansatz ist bei 20 Namen auch bei vergeblicher Suche noch am schnellsten. Mir gefällt er nur deshalb nicht so gut, weil er bei variabel vielen Namen erheblich langwieriger sein könnte.
ChrisL's Lösung ist meiner Meinung nach inkorrekt. "1+1" würde fälschlicherweise auch als korrekter Name erkannt.
Anbei die Profiling Analyse einiger Ansätze.
https://www.herber.de/bbs/user/136106.xlsm
(Diese Datei wird ohne jede Gewähr zur Verfügung gestellt, aber ich verwende einen aktuellen Virenscanner.)
Viele Grüße,
Bernd P
Anzeige
Hinweis auf Definitionsebenen und -arten
26.03.2020 20:34:19
Luc:?
Hi, Bernd & Beteiligte;
es wdn zwar mit ActiveWorkbook.Names.Count fast alle Namen gezählt, auch verborgene, die xlTools zwar generell nicht anzeigen, die man aber per VBA anzeigen und sogar suchen kann, aber es existieren ja auch noch Definitionsebenen, die die Suche nach bestimmten Namen verunmöglichen können. Ein auf Blattebene definierter Name wird so bei der Mappe nur gefunden, wenn ihm der jeweilige (oder ein für ihn relevanter) Blattname vorangestellt wird (ggf kommt man auch mit einer xlSuchFkt, die Platzhalter zulässt, zum Ziel). Namen von ListObjects (definierte Tabellen) dagg wdn so nicht gefunden, obwohl sie im Namensmanager angezeigt wdn. Die fixen internen Namen derselben (Spalten/Zeilen) wdn nichtmal angezeigt und dürften auch nicht gefunden wdn.
Da würden sich die hier gezeigten PgmVorschläge wohl doch etwas relativieren, ganz unabhängig von ihrer Laufzeit… ;-)
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
AW: Bisher wollte niemand alle Namen zählen
27.03.2020 10:12:23
Sulprobil
Hallo Luc,
falls Dich aber diese Frage quälen sollte, mach' doch bitte einen neuen Thread auf.
Falls Du jedoch ein praktisch relevantes Problem mit den hier vorgestellten Antworten auf die gestellte Frage hast, lade bitte eine Beispieldatei hoch.
Wr hlfn grn :-)
Viele Grüße,
Bernd P
Worauf gründet sich deine doch etwas ...
27.03.2020 14:28:32
Luc:?
…merkwürdige, wenn nicht gar arrogante AW, Bernd‽
Darauf, dass du weder Sinn noch Tragweite verstanden hast, weil du evtl nur den Anfang gelesen hast? Der hat nur das bedeutet, was dort steht. Die Konsequenz für das hier angesprochene Problem besteht doch darin, dass man einen auf Blattebene definierten Namen in seiner Reinform niemals unter ActiveWorkbook.Names finden wird, da er dort nur mit vorangestelltem Blattnamen geführt wird. Das ist mir (und anderen) schon seit vielen Jahren bekannt und insofern habe ich damit kein Problem, was ich nicht selber schon gelöst hätte oder noch lösen könnte.
Man sollte schon alles lesen…
Luc :-?
Anzeige
AW: Es reicht völlig ...
27.03.2020 17:00:16
Sulprobil
... wenn Du den interessierten Anwender darauf hinweist, dass man mit ChrisL's oder Daniel's Ansatz für Worksheet Namen den Namen des Worksheets(Tabellenblatts) durch "!" getrennt dem gesuchten Namen voranstellen muss, Luc.
Das ist ein Bedienungshinweis, relativiert aber die Programmvorschläge nicht.
Viele Grüße,
Bernd P
Man kann auch zusätzlich auf diesen Ebenen ...
27.03.2020 20:03:21
Luc:?
…suchen, Bernd,
wie ich das schon seit Jahren mache…
Luc :-?

42 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige