Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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
VBA String in Variable umwandeln
02.05.2020 10:15:16
Thomas
Hallo Zusammen,
Ich habe folgendes Problem:
Ich habe im meinen Skript Variablen definiert und mit Werten beschrieben. Teilweise über ein Input in eine Userform und teilweise normal deklariert.
Jetzt will ich die normal deklarierten Variablen in einer Schleife aus einem Arry verwenden. Der Schleifenteil für die eingaben in die Userform funktioniert hierbei ohne Probleme (hier wird der Wert der Eingabe ausgegeben und nich der Name der Variable). Der zweite Teil geht leider noch nicht. Hier wird der Name der Variable und nicht der Wert der Variable ausgegeben. Jetzt weiß ich nicht wie ich den Typ der vorab definierten Variable "Variable01" umwandeln kann.
Kann mit hier jemand weiterhelfen? vielen Dank
Hier noch das minimalbeispiel:
Dim inputUserform1 As Integer    ' Irgendwo im skipt definiert
Dim Varible01 As Integer         ' Irgendwo im skipt definiert
Dim i As Integer, arrZeilenName, arrVarName
arrVarName = Array("inputUserform1", "Variable01")
arrZeilenName = Array("Handelstyp", "Symbol")
For i = LBound(arrZeilenName) To UBound(arrZeilenName)
With Worksheets("TJ").Range("A1:AZ2000")
Set findresult = .Find(arrZeilenName(i))
End With
' funktioniert ohne Problme
If Left(arrVarName(i), 5) = "input" Then
ActiveSheet.Cells(10, findresult.Column).Value = Userform_Dateneingabe(arrVarName(i))
Else
' geht leider noch nicht
ActiveSheet.Cells(10, findresult.Column).Value = arrVarName(i)
End If
Next i

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

Betreff
Datum
Anwender
Anzeige
AW: VBA String in Variable umwandeln
02.05.2020 12:43:48
Mullit
Hallo,
das geht so normalerweise nicht, ein String ist ein String und keine Variable mit Inhalt, zeig mal ihn hier, die Proc müsste man mal sehen....
Userform_Dateneingabe(arrVarName(i))

Gruß, Mullit
AW: VBA String in Variable umwandeln
02.05.2020 14:57:51
Thomas
@Mullit
was meinst du mit Proc?
Lustigerweise funktioniert genau diese Ausgabe
ActiveSheet.Cells(10, findresult.Column).Value = Userform_Dateneingabe(arrVarName(i))
analog zu
ActiveSheet.Cells(10, findresult.Column).Value = Userform_Dateneingabe.inputUserform1
Hier funktioniert genau dieser effekt, dass die Variable "inputUserform1" z.B. den Wert 2 hat und in der Zelle (10,X) der Wert 2 ausgegeben wird und nicht der Name des Strings "inputUserform1".
Kann mir jemand sagen warum dann der Zweite teil nicht geht?
Anzeige
AW: VBA String in Variable umwandeln
02.05.2020 15:47:42
Mullit
Hallo,
ja ich nahm an, das wäre eine Prozedur, scheint aber eine UserForm zu sein, mit der Klammernotation und Stringübergabe würdest Du ein Control ansprechen, bspw. eine Textbox, da funktioniert das, wenn Du allerdings nur den String aus dem Array übergibst, erscheint eben nur dieser String in der Zelle, wenn dann müsstest Du die Variable, da ja global und hoffentlich in einem Standardmodul deklariert, direkt übergeben:
ActiveSheet.Cells(10, findresult.Column).Value = Variable01
Andernfalls, wenn das auch noch nicht hinhaut und um weiterem Rätselraten vorzubeugen, hilft nur noch eines: Eine Beispielmappe...;-)
Gruß, Mullit
Anzeige
AW: VBA String in Variable umwandeln
02.05.2020 12:46:05
fcs
Hallo Thomas,
gibt es eine Fehlermeldung?
Es sollte eine Prüfung eingebaut werden, ob der Suchbegriff gefunden wurde.
Zusätzlich sollten bei der Find-Methode immer die Parameter Lookin und Lookat angegeben werden, da hier sonst andere Einstellungen aus einer vorherigen Suche verwendet werden.
Probiere es mal so:
Dim inputUserform1 As Integer    ' Irgendwo im skipt definiert
Dim Varible01 As Integer         ' Irgendwo im skipt definiert
Dim i As Integer, arrZeilenName, arrVarName
arrVarName = Array("inputUserform1", "Variable01")
arrZeilenName = Array("Handelstyp", "Symbol")
For i = LBound(arrZeilenName) To UBound(arrZeilenName)
With Worksheets("TJ").Range("A1:AZ2000")
Set findresult = .Find(What:=arrZeilenName(i), LookIn:=xlValues, _
lookat:=xlPart) 'ggf.xlwhole statt xlPart)
End With
' funktioniert ohne Problme
If Not findresult Is Nothing Then
If Left(arrVarName(i), 5) = "input" Then
ActiveSheet.Cells(10, findresult.Column).Value = Userform_Dateneingabe(arrVarName(i) _
)
Else
' geht leider noch nicht
ActiveSheet.Cells(10, findresult.Column).Value = arrVarName(i)
End If
End If
Next i
End Sub

LG
Franz
Anzeige
AW: VBA String in Variable umwandeln
02.05.2020 14:48:14
Thomas
@Franz
Danke für den Hinweis mit der Suche. Ich werde das so ergänzen. Jedoch hat die Suche ohne Probleme mit dem gewünschten Ergebnis funktioniert. Problematisch ist eher diese Zeile:
arrVarName = Array("inputUserform1", "Variable01")
und
ActiveSheet.Cells(10, findresult.Column).Value = arrVarName(i)
Hier wird dies Ausgabe "inputUserform1" und "Variable01" in Zelle (10,X) geschrieben. Nehmen wir an, die Variabele01 hatden Wert 1, hätte ich gerne in der Zelle (10,X) nicht "Variable01", sondern den Wert der Variable --> 1.
Anzeige
AW: VBA String in Variable umwandeln
03.05.2020 09:50:23
Daniel
Hi
Dann ohne Anführungszeichen um die Variable:
arrVarName = Array("inputUserform1", Variable01)

Alles was innerhalb von Anführungszeichen steht, ist immer Freitext und wird nicht als VBA-Coder Oder Variable erkannt.
Gruß Daniel
AW: VBA String in Variable umwandeln
06.05.2020 17:02:16
Thomas
@Daniel
Vielen Dank!
Manchmal ist es dann doch so trivial ;)... hat so funktioniert wie ich erwartet habe

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige