Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable aus Zeichenkette und Code zusammensetzen?

Variable aus Zeichenkette und Code zusammensetzen?
19.06.2007 00:42:32
Benny
Hallo,
weiß jemand von euch, ob man zuvor deklarierte Variablen aus Zeichenketten und einer anderen Variable zusammensetzen kann? Oder allgemein gefragt, ob man VBA-Code aus Zeichenketten und VBA-Code gewinnen kann? Also das ich z.B. diese Prozedur test1:

Sub test1()
Dim EA01_01 As String, EA01_02 As String, EA01_03 As String
Worksheets(1).Cells(1, 9).Value = EA01_01
Worksheets(2).Cells(1, 9).Value = EA01_02
Worksheets(3).Cells(1, 9).Value = EA01_03
End Sub


Auch so in etwa so schreiben könnte (test2):


Sub test2()
Dim EA01_01 As String, EA01_02 As String, EA01_03 As String
For i = 1 To 3
Worksheets(i).Cells(1, 9).Value = "EA01_0" & i
Next i
End Sub


? Ein Teil der Variable bleibt immer gleich. Wenn jemand eine Idee hat, oder zumindest weiß, dass es nicht geht, der schreibe bitte! Vielen Dank schonmal,
Benny

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable aus Zeichenkette und Code zusammenset
19.06.2007 00:55:00
Matthias
Hallo
Ohne getestet zu haben:
statt
Worksheets(i).Cells(1, 9).Value = "EA01_0" & i
Worksheets(i).Cells(1, 9).Value = EA01_0 & i 'ohne Gänsefüsschen
Gruß Matthias

AW: Variable aus Zeichenkette und Code zusammenset
19.06.2007 07:58:00
Matthias
Hallo Benny
... oder meinst Du so etwas, wegen des Zusammenfügens einer Variablen mit einem String in eine andere Variable.
Hab ich Dich jetzt richtig verstanden?
Option Explicit

Sub String_String_String()
Dim EA01_01 As String, EA01_02 As String, EA01_03 As String
EA01_01 = "Str"
MsgBox "erste Variable = " & EA01_01 & vbLf & "nur Variable1"
EA01_02 = EA01_01 & "ing"
MsgBox "zweite Variable = " & EA01_02 & vbLf & vbLf & "zusammengesetzt aus (Str) und (ing)"
EA01_03 = EA01_02 & "Nr."
MsgBox "dritte Variable = " & EA01_03 & vbLf & vbLf & "zusammengesetzt aus (String) und (Nr.)"
MsgBox "alle zusammen" & vbLf & vbLf & "Var1=" & EA01_01 & vbLf & "Var2=" & EA01_02 & vbLf & " _
Var3=" & EA01_03
End Sub


Gruß Matthias

Anzeige
AW: Variable aus Zeichenkette und Code zusammenset
19.06.2007 08:46:21
Benny
Hallo Matthias,
danke für Deine Antwort! Ich meine es so, wie du es in Deiner ersten Antwort verstanden hast (die von 0.55 Uhr). Aber leider funktioniert das nicht, denn wenn man die Anführungszeichen weglässt, fügt VBA in die betreffenden Zellen einfach nur den Wert von i (= 1, 2, 3) ein und ignoriert den Rest.
Mit Anführungszeichen setzt er einen Textstring in die Zelle ein, der so lautet wie der Variablen-Name (aber ebenfalls nicht der eigentliche Variablen-Wert ist).
Habe auch nochmal rumprobiert, aber nichts gefunden, denke ich werde mir einen anderen Ansatz ausdenken müssen!
Gruß Bennmy

Anzeige
AW: Variable aus Zeichenkette und Code zusammensetzen?
19.06.2007 09:15:54
Rudi
Hallo,

Sub test2()
Dim EA01( 1 To 3) As String
For i = 1 To 3
Worksheets(i).Cells(1, 9).Value = EA01(i)
Next i
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Variable aus Zeichenkette und Code zusammenset
19.06.2007 09:23:00
Benny
Hi Rudi,
funktioniert bestens, vielen Dank!
Gruß Benny

Anzeige
Danke, sowas fehlte noch auf meiner Platte ;-)
19.06.2007 09:40:53
Matthias
Hallo Rudi
Besten Dank, das war auch für mich eine interessante Sache, kannte ich bis vorhin noch nicht.


Option Explicit
Sub Super()
Dim EA01_0(1 To 3) As String
Dim i As Byte
For i = 1 To 3
If i = 1 Then EA01_0(i) = "Das"
If i = 2 Then EA01_0(i) = "ist"
If i = 3 Then EA01_0(i) = "genial"
Worksheets(i).Cells(1, 9).Value = EA01_0(i)
Next i
End Sub


Da macht doch das "Lernen" gleich wieder viel mehr Spaß
Gruß Matthias

Anzeige
AW: Danke, sowas fehlte noch auf meiner Platte ;-)
19.06.2007 12:01:40
Rudi
Hallo,
nicht If, sondern Select Case! ;-)

Sub Super()
Dim EA01_0(1 To 3) As String
Dim i As Byte
For i = 1 To 3
Select Case i
Case 1: EA01_0(i) = "Das"
Case 2: EA01_0(i) = "ist"
Case 3: EA01_0(i) = "genial"
End Select
Worksheets(i).Cells(1, 9).Value = EA01_0(i)
Next i
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
ok, überzeugt ;-)
20.06.2007 00:10:00
Matthias
Hallo Rudi
Das mit Select Case i ist natürlich effizienter.
Es muß kein Zustand erst abgefragt werden, sondern er steht mit der Variablen schon fest.
aber die Idee mit If war doch gar nicht "soooo schlecht", oder?
Danke Rudi und genial bleibt es totzdem ;-)
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Variablen aus Zeichenketten und Code in Excel VBA zusammenfügen


Schritt-für-Schritt-Anleitung

Um in Excel VBA Variablen aus Zeichenketten und bestehenden Variablen zusammenzufügen, kannst du die folgenden Schritte befolgen:

  1. Deklariere deine Variablen: Verwende die Dim-Anweisung, um die Variablen zu deklarieren.

    Dim EA01_01 As String, EA01_02 As String, EA01_03 As String
  2. Setze Werte in die Variablen: Weise den Variablen Werte zu, die du später zusammenfügen möchtest.

    EA01_01 = "Wert1"
    EA01_02 = "Wert2"
  3. Verketten der Variablen: Nutze das &-Zeichen, um die Variablen mit einem String zu verketten.

    Dim Ergebnis As String
    Ergebnis = EA01_01 & " und " & EA01_02
  4. Setze das Ergebnis in eine Zelle: Weisen das Resultat einer Excel-Zelle zu.

    Worksheets(1).Cells(1, 1).Value = Ergebnis

Häufige Fehler und Lösungen

  • Problem: Wenn du Anführungszeichen um eine Variable setzt, wird sie als Text und nicht als Variable interpretiert.

    • Lösung: Entferne die Anführungszeichen, um die Variable korrekt zu referenzieren.
  • Problem: Excel zeigt nur den Wert von i anstatt den Wert der Variablen.

    • Lösung: Verwende Worksheets(i).Cells(1, 9).Value = EA01_0(i), um auf den Inhalt der Variablen zuzugreifen.

Alternative Methoden

Eine Alternative zur Verwendung von Variablen ist die Verwendung von Arrays. Hier ein Beispiel, wie du mit einem Array mehrere Werte verwalten kannst:

Dim EA01(1 To 3) As String
EA01(1) = "Wert1"
EA01(2) = "Wert2"
EA01(3) = "Wert3"

For i = 1 To 3
    Worksheets(i).Cells(1, 9).Value = EA01(i)
Next i

Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie du in Excel VBA Strings mit Variablen zusammenfügen kannst:

Sub Beispiel()
    Dim Name As String
    Dim Alter As String
    Dim Ergebnis As String

    Name = "Max"
    Alter = "25"

    Ergebnis = "Mein Name ist " & Name & " und ich bin " & Alter & " Jahre alt."
    MsgBox Ergebnis
End Sub

In diesem Beispiel wird ein Satz erstellt, der den Namen und das Alter einer Person enthält.


Tipps für Profis

  • Verwendung von Option Explicit: Aktiviere diese Anweisung, um sicherzustellen, dass alle Variablen deklariert sind, bevor du sie verwendest. Dies hilft, Fehler zu vermeiden.
  • Verketten von Strings: Du kannst auch die Funktion Join verwenden, wenn du mehrere Strings in einem Array hast.

    Dim TextArray() As String
    TextArray = Split("Das;ist;ein;Test", ";")
    MsgBox Join(TextArray, " ")

FAQ: Häufige Fragen

1. Wie kann ich eine Variable in einem String verwenden?
Du kannst eine Variable in einen String einfügen, indem du das &-Zeichen zum Verketten verwendest: Ergebnis = "Wert ist: " & meineVariable.

2. Was ist der Unterschied zwischen & und + beim Verketten von Strings?
& ist speziell für das Verketten von Strings in VBA, während + auch für mathematische Operationen verwendet wird. Verwende &, um Verwirrung zu vermeiden.

3. Kann ich auch Zahlen in einen String einfügen?
Ja, du kannst Zahlen in einen String einfügen, indem du sie einfach mit dem &-Operator verknüpfst: Ergebnis = "Zahl: " & 5.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige