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

Forumthread: Sting Variable in Zahl umwandeln

Sting Variable in Zahl umwandeln
25.01.2017 10:41:11
Florian23
Hallo,
ich möchte meine Variable zeiten die ich als string deklariert habe. Diese Variable ist die Zeit.
Ihr Format habe ich immer über

FormatDateTime(zeiten, vbShortTime)
bestimmt.
Jetzt möchte ich die Variable jedoch als Zahl ausdrücken.
Wie bekomme ich das hin?
MfG Flori
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Sting Variable in Zahl umwandeln
25.01.2017 10:48:20
Max2
Mit Int(variable).
Füge dass mal in den Code einer Tabelle ein und führe es aus:

Sub a()
Dim vDate As String
vDate = FormatDateTime(Date, vbShortDate)
Cells(1, 1).Value = vDate
Cells(1, 2).Value = Int(vDate)
End Sub
möchtest du das Datum so dargestellt bekommen oder habe ich was falsch verstanden?
Anzeige
AW: Sting Variable in Zahl umwandeln
25.01.2017 10:52:02
Florian23
achja das hatte ich vergessen zu sagen, ich möchte die Variable nicht irgendwohin schreiben.
Die Umrechnung soll im Hintergrund passieren. Ist das möglich?
AW: Sting Variable in Zahl umwandeln
25.01.2017 10:55:58
Max2
Du musst es ja nicht hinschreiben...
Das war nur um dir grafisch zu zeigen was es macht
Du kannst entweder, jedes mal wenn du Zeiten als Integer brauchst es so schreiben:
Int(Zeiten)
oder sagst:
Dim izeiten As Integer
izeiten = Int(Zeiten)
Anzeige
AW: Sting Variable in Zahl umwandeln
25.01.2017 11:01:38
Florian23
dann bekomme ich einen Laufzeitfeher 13 - Typen unverträglich
AW: Sting Variable in Zahl umwandeln
25.01.2017 11:10:03
Max2
Mein Fehler, tut mir leid.

Sub a()
Dim a As String
Dim i As Long
a = FormatDateTime(Date, vbShortDate)
i = CDbl(a)
MsgBox i
End Sub
Muss mit CDbl konvertiert werden
AW: Sting Variable in Zahl umwandeln
25.01.2017 11:19:43
Florian23
Mit dem Datum funktioniert das, aber ich hätte es gerne für die Zeit.
Und wenn ich es mit der Zeit probiere kommt wieder Laufzeitfehler 13
Sub a()
Dim a As String
Dim i As Long
a = FormatDateTime(Time, vbShortTime)
MsgBox a
i = CDbl(a)
MsgBox i
End Sub

Anzeige
AW: Sting Variable in Zahl umwandeln
25.01.2017 11:35:08
Florian23
ich habe es selbst geschafft :D
Sub a()
Dim a As String
Dim i As Double
a = FormatDateTime(Time, vbShortTime)
MsgBox a
i = CDbl(CDate(a))
MsgBox i
End Sub
so muss es aussehen.
Danke trotzdem für deine Hilfe :)
AW: Sting Variable in Zahl umwandeln
25.01.2017 11:47:14
EtoPHG
Hallo Florian,
Msgbox CDbl(CDate(zeiten)) 

Enhält zeiten auch noch ein Datum, dann
MsgBox CDbl(CDate(zeiten)) - WorksheetFunction.RoundDown(CDbl(CDate(zeiten)), 0)

Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sting Variable in Zahl umwandeln


Schritt-für-Schritt-Anleitung

Um eine String-Variable in VBA in eine Zahl umzuwandeln, kannst Du die Funktion CDbl oder CInt nutzen, abhängig von den Anforderungen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Deklariere Deine Variable: Zuerst musst Du die String-Variable deklarieren.

    Dim zeiten As String
  2. Setze einen Wert für die Variable: Weise der Variable einen Zeitwert zu.

    zeiten = FormatDateTime(Time, vbShortTime)
  3. Wandle die String-Variable in eine Zahl um: Nutze CDbl oder CInt, um die Umwandlung durchzuführen.

    Dim zahl As Double
    zahl = CDbl(CDate(zeiten))
  4. Optional: Ausgabe: Du kannst das Ergebnis in einer Meldung anzeigen lassen, um zu überprüfen, ob die Umwandlung erfolgreich war.

    MsgBox zahl

Häufige Fehler und Lösungen

  • Laufzeitfehler 13 - Typen unverträglich: Dieser Fehler tritt häufig auf, wenn die String-Variable nicht in das erwartete Format konvertiert werden kann. Achte darauf, dass die String-Variable in einem gültigen Zeitformat vorliegt, bevor Du die Umwandlung vornimmst.

  • Falsche Umwandlung: Wenn Du versuchst, einen String, der kein gültiges Datum oder keine gültige Zeit enthält, in eine Zahl umzuwandeln, wird das auch zu einem Fehler führen. Überprüfe immer den Inhalt der Variable.


Alternative Methoden

Es gibt verschiedene Ansätze, um eine String-Variable in VBA in eine Zahl umzuwandeln:

  1. Direkte Verwendung von Int: Wenn Du nur den ganzzahligen Teil benötigst, kannst Du Int verwenden:

    Dim i As Long
    i = Int(CDbl(a))
  2. Verwendung von WorksheetFunction: Manchmal kann es hilfreich sein, Excel-Funktionen zu verwenden, um die Umwandlung durchzuführen:

    Dim result As Double
    result = WorksheetFunction.RoundDown(CDbl(CDate(zeiten)), 0)

Praktische Beispiele

Hier sind einige Beispiele, die das Umwandeln eines Strings in eine Zahl veranschaulichen:

  1. Beispiel für Zeit:

    Sub BeispielZeit()
       Dim zeiten As String
       Dim zeitInZahl As Double
       zeiten = FormatDateTime(Time, vbShortTime)
       zeitInZahl = CDbl(CDate(zeiten))
       MsgBox "Die Zeit als Zahl: " & zeitInZahl
    End Sub
  2. Beispiel für Datum:

    Sub BeispielDatum()
       Dim datum As String
       Dim datumInZahl As Double
       datum = FormatDateTime(Date, vbShortDate)
       datumInZahl = CDbl(CDate(datum))
       MsgBox "Das Datum als Zahl: " & datumInZahl
    End Sub

Tipps für Profis

  • Verwendung von CInt für ganze Zahlen: Wenn Du sicher bist, dass die Umwandlung in eine ganze Zahl erfolgen soll, verwende CInt, um sicherzustellen, dass die Umwandlung korrekt durchgeführt wird.

  • Prüfe die Eingabewerte: Vor der Umwandlung kann es hilfreich sein, die Werte zu validieren, um Laufzeitfehler zu vermeiden. Du kannst beispielsweise die Funktion IsDate verwenden, um zu überprüfen, ob der String ein Datum oder eine Zeit darstellt:

    If IsDate(zeiten) Then
       ' Umwandlung durchführen
    End If

FAQ: Häufige Fragen

1. Wie wandle ich einen String in eine ganze Zahl um?
Verwende die Funktion CInt oder Int, um den String in eine Integer-Variable umzuwandeln. Achte darauf, dass der String ein gültiges Zahlenformat hat.

2. Kann ich auch Fließkommazahlen umwandeln?
Ja, dafür verwendest Du CDbl, um den String in Double umzuwandeln. Dies ist nützlich, wenn Du präzisere Werte benötigst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige