Microsoft Excel

Herbers Excel/VBA-Archiv

string in variable umwandeln

Betrifft: string in variable umwandeln von: ela
Geschrieben am: 29.07.2014 13:58:02

Hallo,

ich habe folgendes Problem.
Per Comboboxen lasse ich bestimmte Auswahlmöglichkeiten zu. Diese Auswahlmöglichkeiten stehen für variablennamen mit denen ich im programmablauf weiter arbeiten möchte, diese lese ich jedoch als String aus.

Wie kann ich diese Auswahlmöglichkeiten auslesen, damit sie in meinem Programm als Variablen und nicht als string erkannt werden?

Kann ich evtl den datentyp ändern? Und wenn ja auf welchen?
Oder ist es möglich diese Strings in variablen umzuwandeln bzw. das was zwischen den "" steht zu extrahieren?

Bsp: "bericht" -- bericht

viele grüße

ela

  

Betrifft: Mit den Namen von Variablen als Text kannst ... von: Luc:-?
Geschrieben am: 29.07.2014 14:12:30

…du mit der AufrufMethode CallByName arbeiten, die in VBA nachträglich (als Fkt bzw fktsartig) implementiert wurde, ela.
Voraussetzung ist, dass diese Variablen Eigenschaften/Methoden eines Objektes sind, das du als 1.Parame­ter/Ar­gument angeben musst. Das kann ein Klassen-, bspw auch ein DokumentKlassenModul oder die Application, sein. Es fktioniert in Analogie zu den Property-Prozeduren unter Hinzunahme von Methoden (vbMethod als 3.Param/Arg).
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: AW: Mit den Namen von Variablen als Text kannst ... von: Daniel
Geschrieben am: 29.07.2014 14:34:30

Hi
wenn du auf Variablenwerte über einen String zugreifen willst, könntes du alternativ zu Lucs vorgschlagener Methode auch die Werte in ein Dictionary packen:

als statt:

Dim Bericht as String
Dim Anzahl as long
Dim Auswahl as String
Bericht = "Hallo Welt"
Anzahl = 2
Auswahl = Inputbox("Welchen Wert wollen sie sehen?")
Msgbox ????
dann folgendes
Dim meineVariablen as Object
Dim Auswahl as String
Set meineVariablen = CreateObject("Scripting.Dictionary")
meineVariablen("Bericht") = "Hallo Welt"
meineVariablen("Anzahl") = 2
Auswahl = Inputbox("Welchen Wert wollen sie sehen?")
Msgbox meineVariablen(Auswahl)
Gruß Daniel


  

Betrifft: Was der alles weiß von: Nepumuk
Geschrieben am: 29.07.2014 16:29:46

Zitat:

die in VBA nachträglich (als Fkt bzw fktsartig) implementiert wurde

Komisch, ich kenn das aus VB6.0 was 1998 herausgegeben wurde. Ein abgespecktes VB6.0 wurde anschließend eine der Funktionsbibliotheken in Excel 2000, welches 1999 auf den Markt kam. CallByName gab's also schon ein Jahr bevor es in VBA auftauchte.

Gruß
Nepumuk


  

Betrifft: Was soll das! Es ist schon lange in VBA, aber ... von: Luc:-?
Geschrieben am: 30.07.2014 03:20:37

…trotzdem nachträglich, da es ja nicht nach dem Schema der anderen beiden CallBy-Arten konstruiert wurde!
Dir, Nepumuk, muss ich ja wohl nicht sagen, dass es in manchen PgmierSprachen bis dato fehlt. In welcher es zuerst auftauchte, kannst du gern bei Wikipedia nachlesen, falls du die nicht mehr kennst. ;-]
Nebenbei, ich habe 10 Jahre eher als du mit Pgmieren begonnen, war dann aber jahrzehntelang mit GR-Projekt­Entwicklung befasst. Die Pgmm mussten dann Andere schreiben… ;-]
Ansonsten bin ich über deinen abschätzigen Tonfall not amused. Du magst ja über große Pgmierkenntnisse verfügen, aber die sind nicht immer das A und O, sondern eigene, originäre/elle Ideen. Und damit scheint es bei vielen deiner Zunft doch etwas zu hapern, sonst wäre wohl Einiges, was ich mir schon vor Jahren erarbeitet habe, längst bekannt…
Aber natürlich habt ihr ja andere Aufgaben und hier zu schreiben ist für so bedeutende Pgmierer ja nur ein Zeitvertreib aus/bei Langeweile…
Luc :-?


  

Betrifft: AW: Was soll das! Es ist schon lange in VBA, aber ... von: Nepumuk
Geschrieben am: 30.07.2014 08:34:45

Hääääääää?

CallByName in VBA und VB6.0 ist vollkommen identisch. Und das VB6.0 die Grundlage von VBA ist wirst du wohl nicht bestreiten, es benutzt die identischen Runtime-Bibliotheken.

Nebenbei, ich habe 10 Jahre eher als du mit Pgmieren begonnen

Wow, 1968 war ich gerade mal 10 Jahre alt, da kannte ich das Wort Computer noch gar nicht.

Gruß
Nepumuk


  

Betrifft: Neben dem zeitlichen, gibt's noch ein ... von: Luc:-?
Geschrieben am: 31.07.2014 16:50:02

…konzeptionelles „nachträglich“, Nepumuk,
und in der BasisSprache (damit ist nicht VB6.0 gemeint) von VBA scheint das wohl (wie in vielen Sprachen noch heute) gefehlt zu haben. Zumindest habe ich den Wikipedia-Artikel dahingehend interpretiert. Ursache dürfte die Nicht-Kompilierbarkeit sein, weil so etwas erst zur Laufzeit aufgelöst wdn kann.
Meine Bemerkung zur Pgmmierung bezog sich auf deine Bemerkung ggüber adis → 1980! Also folglich 1969/70 (mit 21-22), damals mit ZahlenCodes für (inzwischen längst „ausgestorbene“) KR → MOPS, FIPS, GIPS. Später musste ich noch PL/1 (mit ** statt ^, für GR; ansatzweise) erlernen. Ab ca 1997 habe ich mich um VBA (VB6.0-Basis) bemüht, nachdem kurz zuvor Basic, OpenScript und Lingo angesagt waren. Dazwischen lagen die Projektierungsjahre mit Beurteilung jeweiliger PseudoCode-Entwürfe.
Übrigens wirst du doch sicher zugeben, dass ein Beitrag, quasi als AW unter einen anderen gesetzt und dann vom Verfasser dieses anderen schon im Betreff in der der 3.Person sprechend, eine zumindest grobe Unhöflichkeit darstellt, sozusagen ein Affront! :-|
Gruß, Luc :-?


  

Betrifft: AW: Neben dem zeitlichen, gibt's noch ein ... von: Adis
Geschrieben am: 01.08.2014 20:35:29

Hallo

das Forum ist sehr interessant. Man kann sogar psychologische Studien machen.

1958 ist im Chinesischen Horoskop übrigens ein Erd Hase. Das ist nicht abwertend gemeint.
Wer sich damit auskennt weiss, das es nur die typischen Charaktereigenschaften beschreibt.

Auf ein Duell mit Nepumuk lege ich keinen Wert. Ihn kann ich nicht schlagen, er ist zu schnell...
Ein Tiger, mein Horoskop, amüsiert sich höchstens wenn ein Hase eine -350 kg- Raubkatze angreift.
Wo aber berechtigte Kritik im Spiel war, wie beim End Befehl, lasse ich mich auch belehren.

Gruss Adis


  

Betrifft: Mein Interessengebiet (in VBA) ist dem von ... von: Luc:-?
Geschrieben am: 02.08.2014 03:52:43

…ProfiPgmierern wie Nepumuk nicht deckungsgleich, Adis;
und in und über deren Domänen würde ich auch nicht streiten. Aber ich kann natürlich auch so etwas nicht einfach auf sich beruhen lassen, zumal bei einem bestimmten Teilaspekt der Handhabung von VBA (über den ich schon mal mit ihm stritt) auch die Meinungen der Profis (zu recht!) divergieren.
Übrigens, von Horoskopen halte ich nichts, weder von europäischen noch chinesischen, wenn auch (wie so oft) ein Körnchen Wahrheit darin stecken mag, aber eben nicht auf der Grundlage ihrer astro(un­)logischen Basis. Dahinter mag nur falsch erinnertes und fehlinterpretiertes Restwissen der Präantike stecken. Da kann man dann auch gleich glauben, dass die Erde eine Scheibe sei… ;-]
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "string in variable umwandeln"