Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unterschied zwischen "Value" und "Text"

Unterschied zwischen "Value" und "Text"
08.10.2016 18:41:55
René
Hallo liebe VBA begeisterte ^^
ich habe eine Frage und hoffe jemand kann mir dies mal verdeutlichen.
Was ist der Unterschied zwischen "Value" und "Text" in folgendem Code, bzw. wo besteht allgemein der Unterschied für Textboxinhalte.

Sub test01()
variable1 = me.textbox2.value
me.textbox1.value = variable1
End Sub

und

Sub test02()
variable1 = me.textbox2.text
me.textbox1.text = variable1
End Sub

Bei beidem wird jeweils das gleiche ausgegeben, also muss es auf der prozedurebene doch einen Unterschied geben!?
Mein Gedanke ist, das es in diesem Beispiel, keinen unterschied gibt, da "Value" = "Text" ist. Beides ist der Inhalt der Textbox und natürlich auch der Inhalt der Variablen.
Kommt das so ungefähr hin?
Achja, ich möchte dies wissen aufgrund meines Fernstudium im bereich VBA-Programmierung.
Vielen Dank schon mal
Mfg René
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschied zwischen "Value" und "Text"
08.10.2016 19:07:29
Nepumuk
Hallo,
bei einer TextBox ist Value und Text identisch nämlich immer ein String.
Dass es beide gibt, liegt an der Klasse der Controls. Z.B. bei einer ListBox welche Zahlen enthält gibt Text einen String aber Value eine Variant vom Untertype welcher dem Zahlenwert entspricht.
Gruß
Nepumuk
Anzeige
AW: Unterschied zwischen "Value" und "Text"
08.10.2016 19:11:13
MatthiasG
Hallo René,
bei einer Textbox sind die Inhalte von .Value und .Text gleich.
Anders aber z.B. in einer Zelle: Hier liefert .Text den Inhalt der Zelle, wie sie angezeigt wird, abhängig von deren Format (z.B. Datum, Text oder als Zahl mit bestimmer Anzahl von Kommastellen).
Gruß Matthias
Anzeige
Nachtrag
08.10.2016 19:19:28
Nepumuk
Hallo nochmal,
auch bei einer TextBox gibt Value einen Variant zurück, den allerdings immer von Untertype Text. Da ein Variant mehr Speicher benötig und daher langsamer ist, ist bei einer TextBox angezeigt immer die Eigenschaft Text zu benutzen.
Gruß
Nepumuk
AW: Unterschied zwischen "Value" und "Text"
08.10.2016 20:32:28
Daniel
Hi
bei Textboxen gibt es Inhaltlich keinen Unterschied zwischen .Text und .Value, weil Textboxen sowieso nur einen Wert haben.
die .Value-Eigenschaft ist sowas wie eine Standardeigenschaft, die jedes Steueerelement enthält, welches zur Eingabe von Werten gedacht ist, deswegen hat auch die Textbox einen .Value-Wert.
einen Inhaltlichen Unterschied gibt es bei Comboboxen, insbesondere wenn diese eine mehrspaltige Datenliste enthalten.
Dort kannst du nämlich festlegen, dass der Wert, welcher im Textfeld angezeigt wird, aus einer anderen Spalte genommen wird als der Wert, der als Ergebnis der Combobox verwendet wird.
der Textfeldwert wäre .Text, der Ergebniswert .Value.
Hier sind unterschiede möglich, beim .Value-Wert kann nämlich auch die Indesnummer des Eintrags ausgegeben werden.
was der Unterschied zwischen .Value und .Text bei Zellen ist, wurde dir ja erklärt.
das braucht man beispielsweise dann, wenn man Zellen abfragt die auch Fehlerwerte enthalten können (#NV oder #DIV/0 als Formelergebnis). Diese Fehlerwerte sind nämlich ein spezieller Datentyp und müssen in VBA gesondert behandelt werden. Fragst du jedoch die .Text-Eigenschaft der Zelle ab, bekommst du immer einen Text, auch als Datentyp als Ergebnis geliefert und kannst ganz normal programmieren, ohne das Fehlerwerte deinen Code durcheinander bringen.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Unterschied zwischen "Value" und "Text" in VBA


Schritt-für-Schritt-Anleitung

Um den Unterschied zwischen .Value und .Text in VBA zu verstehen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und gehe zu den Entwicklertools.

  2. Füge ein UserForm hinzu und platziere eine TextBox (z.B. TextBox1) und einen Button.

  3. Füge den folgenden Code in das UserForm ein:

    Private Sub CommandButton1_Click()
       Dim variable1 As String
       variable1 = Me.TextBox1.Value ' oder .Text
       MsgBox "Der Wert ist: " & variable1
    End Sub
  4. Starte das UserForm und gib einen Text in die TextBox ein.

  5. Klicke auf den Button, um den Wert anzuzeigen.

Beachte, dass in diesem Beispiel der Inhalt von .Value und .Text identisch ist, da beide den gleichen String zurückgeben.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht.

    • Lösung: Überprüfe, ob du die richtigen Objektnamen (z.B. TextBox1) verwendest und dass das UserForm korrekt aufgerufen wird.
  • Problem: Unterschiedliche Werte bei .Value und .Text.

    • Lösung: Dies kann auftreten, wenn du mit Zellen arbeitest. In Zellen gibt .Text den angezeigten Wert zurück, während .Value den tatsächlichen Wert liefert.

Alternative Methoden

Wenn du den Inhalt einer TextBox in VBA verarbeiten möchtest, kannst du auch die .Text- oder .Value-Eigenschaft verwenden. In den meisten Fällen sind sie identisch, jedoch gibt es Unterschiede in anderen Steuerelementen wie ComboBoxen.

  • Beispiel für ComboBox:

    Dim selectedText As String
    Dim selectedValue As Variant
    selectedText = Me.ComboBox1.Text
    selectedValue = Me.ComboBox1.Value

Hierbei kann der angezeigte Text von einer anderen Spalte als der Wert stammen.


Praktische Beispiele

  1. Textbox-Werte kopieren:

    Private Sub CommandButton2_Click()
       Me.TextBox2.Value = Me.TextBox1.Value
    End Sub
  2. Unterschied bei Zellen:

    Sub Unterschiede()
       Dim cellValue As Variant
       Dim cellText As String
       cellValue = Range("A1").Value
       cellText = Range("A1").Text
       MsgBox "Wert: " & cellValue & ", Text: " & cellText
    End Sub

Tipps für Profis

  • Verwendung von .Text: In der Regel ist es empfehlenswert, .Text zu verwenden, wenn du mit TextBoxen arbeitest, da sie schneller und speichereffizienter ist.

  • Fehlerwertbehandlung: Bei Zellen mit Fehlerwerten (z.B. #DIV/0) ist es ratsam, .Text zu verwenden, um eine saubere Ausgabe zu erhalten.

  • VBA-Optimierung: Überprüfe bei der Verwendung von .Value, ob du wirklich den Wert benötigst oder ob der Text ausreicht. Dies kann die Performance deiner Anwendung verbessern.


FAQ: Häufige Fragen

1. Gibt es einen Unterschied zwischen .Value und .Text bei TextBoxen? Ja, bei TextBoxen sind die Werte in der Regel identisch, da sie immer einen String zurückgeben.

2. Wie verhält es sich mit Zellen in Excel? Bei Zellen gibt .Text den formatierten Inhalt zurück, während .Value den tatsächlichen Wert liefert, was wichtig bei Datentypen und Fehlerwerten ist.

3. Wann sollte ich .Value und wann .Text verwenden? Nutze .Text, wenn du mit TextBoxen arbeitest, und .Value, wenn du den tatsächlichen Wert von Zellen oder anderen Steuerelementen benötigst.

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