Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Stringinhalte als Variablen interpretieren

Stringinhalte als Variablen interpretieren
11.11.2005 03:08:14
Joern
Hallo, hallo
Ich habe folgendes Problem:
In VBA (für Excel) lese ich jede Menge Strings über eine Routine ein, die alle an sich (bekannte) Variablennamen enthalten.
Ich möchte vermeiden jetzt für jeden Stringinhalt eine if-Abfrage zu bauen die dann entsprechend diese Variable setzt:
Beispiel wie's nicht sein soll
Option Explicit
Sub Test
Dim i, j As Integer
Dim s, helps As String
s = fillStr
if s = "j"
j = 5
end if
if s = "i"
i = 5
end if
....
End Sub

Private Function fillStr() As String
fillStr = "j"
End Function

Meine Versuche in Sub Test mit
helps = s + "=5"
Evaluate(helps)
waren nicht erfolgreich
Geht sowas überhaupt in VBA ?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Stringinhalte als Variablen interpretieren
11.11.2005 07:50:52
Unbekannter
nimm doch ein array
Beispiel:
dim Text(8) as string
for a = 1 to 8
if text(a).text="irgendwas" then Irgendwas
next a
so kannst du deine If agfrage mit einer Schleife abarbeiten,das sollte s dir bedeutend einfacher machen.
Gruß UN1
AW: Stringinhalte als Variablen interpretieren
11.11.2005 15:00:04
Joern
Ich war wohl etwas zu ungenau bei meiner Problembeschreibung.
Wichtig ist mir die gekoppelte Zuweisung eines Wertes an eine Variable die durch einen String gegeben ist.
Somit habe ich von UN1 angegebener Lösung nichts (trotzdem vielen Dank), da mein Problem nicht die String-Erkennung ist, sondern die Zuweisung.
In C würde ich mir eine Struct bauen mit dem Erkennungs-String und der Adresse der Variablen. Auf diese Weise könnte dann bei erkanntem String der Wert zugewiesen werden.
Nun gibt es sowas ja nicht direkt in MS-VB(weder Structs noch Adressen von Variablen: oder irre ich mich da?).
Noch mal: Die 1. unten stehende Sub(UngewollteArtFunktionierend) erfüllt das was ich erreichen will, aber auf Kosten von if ... then ... Abfragen (wenn es nicht nur 2 Variablen sind wie im Beispiel sondern 100 oder mehr, fällt das schon ins Gewicht).
Während die 2. Sub(GewollteArtNichtFunktionierend) die Art zeigt wie ich es haben will, was aber nicht funktioniert (Excel meldet keinen Fehler, aber es hat keine Zuweisung stattgefunden).
Option Explicit
Sub UngewollteArtFunktionierend
Dim i, j, zuw As Integer
Dim s, helps As String
s = fillStr
zuw = 5
if s = "j"
j = zuw
end if
if s = "i"
i = zuw
end if
....
End Sub
Sub GewollteArtNichtFunktionierend
Dim i, j, zuw As Integer
Dim s, helps As String
s = fillStr
zuw = 5
helps = s + "=" + Str(zuw)
Evaluate(helps)
....
End Sub

Private Function fillStr() As String
if Rnd >= 0.5
fillStr = "j"
else
fillStr = "i"
end
End Function

Geht sowas überhaupt in VBA ?
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige