Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variabelnnamen erhalten

Variabelnnamen erhalten
04.08.2006 10:30:31
alex
Hallo Profis!
Ist es möglich, anstatt dem Variabelninhalt den Variablennamen zu erhalten?
Const TShirt = 4
Const Pulli = 3
Public Function(Produkt as String)
Msgbox(Produkt.name) 'Oder so ähnlich! ?
End Function

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabelnnamen erhalten
04.08.2006 11:04:20
Harald
Hallo Alex,
was meinst Du genau?
Der Name der Variablen in der Funktion ist natürlich "Produkt".
Der Inhalt der Variablen "Produkt" hängt vom AUfruf ab, den Du hier leider nicht dargestellt hast.
Tshirt und Pulli sind Konstanten, keine Variablen, deren Zweck ist aus Deinem Codefragment nicht ersichtlich.
Gruß Harald
AW: Variabelnnamen erhalten
04.08.2006 13:13:02
alex
Ich möchte ganze einfach eine aus einer Funktion übergebenen Variablen nicht den INHALT sondern den NAMEN erhalten.
Const Pulli = "Levis"
Const Tshirt = "Boss"
Public

Function getNameAndValue(product as String)
msgbox(Cstr(product))
msgbox(product.name)
End Function


Sub Test
getNameAndValue Pulli
End Sub

-> Ergbeniss in diesem Beispiel soll eine MSGBOX sein, die zuerst (in diesem Fall) "Levis" (Variabelninhalt) anzeigt, und dann "Pulli" (VariablenNamen)
Anzeige
AW: Variabelnnamen erhalten
04.08.2006 13:34:13
alex
seltsamerweise spinnt das posten hier. hab schon öfter auf deine frage geantwortet, leider klappt irgendwas mit dem posten nicht. vielen dank trotzdem!
AW: Variabelnnamen erhalten
04.08.2006 13:34:23
alex
seltsamerweise spinnt das posten hier. hab schon öfter auf deine frage geantwortet, leider klappt irgendwas mit dem posten nicht. vielen dank trotzdem!
AW: Variabelnnamen erhalten
04.08.2006 13:48:33
Uwe
Hallo, alex,
ich vermute, dass Du TYPE-Def benötigst, womit es Dir möglich ist, zu einem "Objekt" (benutzerdefinierter Datentyp) betimmte Kennwerte zu speichern.

Type Product
Art As String
Firma As String
End Type
Public Function getNameAndValue(p As Product)
newLine = Chr(10) & Chr(13)
MsgBox ("Produktart: " & p.Art & newLine & "Producktmarke: " & p.Firma)
End Function
Sub Test()
Dim p(10) As Product
p(1).Art = "Pulli"
p(1).Firma = "Levis"
p(2).Art = "TShirt"
p(2).Firma = "Boss"
For i = 1 To 2
getNameAndValue p(i)
Next
End Sub

Wenn das in etwa das Ziel ist, dann ist die Wertzuweisung zu einer deklarierten Varabilen des benutzerdef. Datentyps wie bei einer normalen Variablen (hier wird ein Datenfeld p(10) vom Datentype Product deklariert).
Gruß,
Uwe
Anzeige
AW: Variabelnnamen erhalten
04.08.2006 14:30:17
Harald
Hallo Alex,
wenn es das ist, Du willst also zu einem Artikel zwei Informationen (z.B. Typ und hersteller) speichern, dann ist der Weg über einen selbst definierten Typen der Richtige (in anderen Programmiersprachen nennt man so was wie im Beispiel von Uwe auch eine Struktur).
Und nein, den Variablennamen kannst Du nicht auslesen. Das kann schon deshalb nicht klappen, weil der übergebene Wert im Inneren der Funktion nur unter dem Namen bekannt ist, der im Funktionskopf steht ("product" in Deinem Beispiel).
Gruß Harald
AW: Variabelnnamen erhalten - Nachsatz
04.08.2006 14:46:26
Uwe
Hallo, alex,
die Zeit war mir vorhin zu knapp, um zu erklären, warum der Variablenname in der Form, wie Du ihn versuchst anzugeben, nicht funktioniert.
Zur Laufzeit, d.h. sobald eine Prozedur ausgeführt wird - und zwar nicht im Debbug-Modus - sind aus den Variablennamen und Konstanten Speicheradressen geworden, für die nur noch bedeutend sind, wieviel Bytes sie als Datentyp einnehmen. Variablen-/Konstantennamen, die Du während der Entwicklung vergibst, sind somit nichts anders als "Platzhalter" für die Speicheradressen, die Datentyp-Deklaration liefert die Speicherlänge.
Eine Variable hat also, wenn mann sie den als Objekt mal betrachten wollte, nur die Eigenschaft des Datentyps und des Werts. Der Datentyp kann zur Laufzeit durch Funktionen gewandelt werden, der Wert einer Variablen - nicht aber einer Konstanten - kann durch Operationen (Zuweisungen, math. Formeln) verändert werden. Das Ansprechen einer Variablen erfolgt über die beim Compilieren des Programms vergebene Speicheradresse und durch die Längenangabe. Trotz diesem Erklörungsversuches, solltest Du unter einem Obejkt nicht eine Variable verstehen, da dies zur Verwirrung führen könnte.
Wenn Du nun dennoch den Namen einer Variablem im Programm erfahren möchtest, dann mußt Du eine eigene Variable dafür schaffen, der Du den Klarnamen zuweist. In meinem Beispiele könntest Du also zwei Zusatzfelder
VName as string
IndexNr as integer

in die TYPE-Def. einfügen, in die Du an der geeigneten Stelle den Variablennamen p und den Indexwert i einträgst. Zur Laufzeit kannst Du dann p.VName und p.IndexNr abfragen oder zum "Klarnamen" verknüpfen:
p(i).VName & "(" & p(i).IndexNr & ")"
Frage mich aber jetzt nicht wozu Du diese Verknüpfung benötigst, sie sollte nur verdeutlichen, wie ich Deine Frage verstanden habe und zu beantworten versuchte.
Vielleicht kannst Du aber auch aufzeigen, wozu Du diese Angaben benötigst.
Gruß,
Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige