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

Warum Überlauf-Fehler?

Forumthread: Warum Überlauf-Fehler?

Warum Überlauf-Fehler?
01.08.2002 15:39:58
Christoph
Hallo!

Warum kommt es bei der Ausführung dieses Programms zu einem Überlauf?

Sub test()
Dim i As Byte
Dim j As Byte
Dim z As Long
i = 10
j = 30
z = i * j
End Sub

Auch wenn ich z als Double oder gar nicht definiere, kommt es zu einem Überlauf. Warum? i und j sind zwar beschränkt auf [0,255], aber z doch nicht?

Danke!

Christoph

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Warum Überlauf-Fehler?
01.08.2002 16:24:04
Ralf Sögel
Da sollte ein Blick in die VBA- Hilfe weiterhelfen.
Re: Warum Überlauf-Fehler?
01.08.2002 16:34:07
Christoph
Ja, der Hilfe nach hat das Ergebnis den Datentyp des Ausdrucks mit der größten Genauigkeit. Hier gehen nur Byte-Variablen ein, also sollte Byte rauskommen.
Aber es muß doch auch möglich sein, das Ergebnis einer Multiplikation von Byte-Variablen einer Long-Variablen zuzuweisen!?
Anzeige
Re: Warum Überlauf-Fehler?
01.08.2002 17:55:29
Charlie
Hallo, Christoph!

Excel rechnet selbst mit Byte-Variablen nicht mit Ganzzahlen! Das Ergebnis der Multiplikatin zweier Variablen vom Typ "Byte" muss noch lange keine ganze Zahl sein. Die Ergebnisvariable vom Typ "Long" akzeptiert allerdings nur ganze Zahlen.

z = CLng(i) * j
führt zum richtigen Ergebnis

Die Hilfe sagt zum Laufzeitfehler '6' u.a. aus:
Sie versuchen, eine Zahl in einer Berechnung zu verwenden, die in eine Ganzzahl gezwungen wird, aber das Ergebnis ist größer als eine Ganzzahl. Beispiel:
Dim x As Long
x = 2000 * 365 ' Fehler: Überlauf
Um diese Situation zu umgehen, geben Sie die Zahl folgendermaßen an:
Dim x As Long
x = CLng(2000) * 365

In der EDV ist nicht alles logisch, was eigentlich logisch ist. ;))

Gruß,
Charlie

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Überlauf-Fehler in Excel und VBA verstehen und beheben


Schritt-für-Schritt-Anleitung

Wenn Du mit Excel VBA arbeitest und auf einen Überlauf-Fehler stößt, gibt es einige Schritte, die Du befolgen kannst, um das Problem zu beheben:

  1. Überprüfe die Datentypen: Stelle sicher, dass die Variablen, die Du verwendest, den richtigen Datentyp haben. In Deinem Beispiel wurden i und j als Byte deklariert, was bedeutet, dass sie nur Werte von 0 bis 255 annehmen können.

  2. Verwende den richtigen Datentyp für das Ergebnis: Wenn Du das Produkt zweier Byte-Variablen berechnest, könnte das Ergebnis größer als 255 sein. Nutze daher CLng(i) * j, um sicherzustellen, dass das Ergebnis als Long behandelt wird.

  3. Testen und Debuggen: Setze Haltepunkte in Deinem Code, um zu überprüfen, wo der Fehler auftritt. Achte insbesondere auf Berechnungen, die zu einem Overflow führen könnten.

  4. Fehlermeldungen interpretieren: Bei der Fehlermeldung „Laufzeitfehler 6: Überlauf“ handelt es sich um einen Hinweis darauf, dass das Ergebnis einer Berechnung den maximalen Wert eines Datentyps überschreitet.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die Du bei der Arbeit mit Überlauf in Excel VBA erleben könntest, sowie deren Lösungen:

  • Überlauf bei Berechnung: Wenn Du mit Byte-Variablen rechnest, kann es zu einem Überlauf kommen, wenn das Ergebnis den zulässigen Bereich überschreitet. Lösung: Verwende CLng oder Double für die Berechnung.

  • Fehler beim SVERWEIS: Der Fehler #Überlauf kann auch auftreten, wenn Du versuchst, einen Wert zu suchen, der nicht existiert. Überprüfe die Eingabeparameter des SVERWEIS.

  • Fehlerhafte Zuweisungen: Stelle sicher, dass Du keine falschen Datentypen zuweist. Beispiel: Dim x As Long und x = 2000 * 365 kann zu einem Überlauf führen, wenn x nicht als Long behandelt wird.


Alternative Methoden

Es gibt verschiedene Methoden, um Überlauf-Fehler in Excel und VBA zu vermeiden:

  • Verwendung von Double: Anstelle von Byte oder Integer kannst Du Double verwenden, um größere Werte zu ermöglichen.

  • Fehlerbehandlung in VBA: Implementiere eine Fehlerbehandlung in Deinem Code, die den Überlauf abfängt und entsprechende Maßnahmen ergreift:

On Error GoTo ErrorHandler
' Dein Code hier
Exit Sub
ErrorHandler:
If Err.Number = 6 Then
    MsgBox "Überlauf-Fehler aufgetreten!"
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, Überlauf-Fehler zu verstehen und zu vermeiden:

  1. Beispiel mit Multiplikation:

    Sub BeispielÜberlauf()
       Dim i As Byte
       Dim j As Byte
       Dim z As Long
       i = 200
       j = 2
       z = CLng(i) * j ' Vermeidet Überlauf
    End Sub
  2. SVERWEIS Beispiel:

    =SVERWEIS(A1;B1:C10;2;FALSCH) 
    ' Stelle sicher, dass A1 einen gültigen Wert enthält, um #Überlauf zu vermeiden.

Tipps für Profis

Hier sind einige Tipps, um Fehler in Excel und VBA zu vermeiden:

  • Verwende geeignete Datentypen: Wähle immer den Datentyp, der den größten Wertebereich abdeckt, um Überlauf-Fehler zu vermeiden.

  • Debugging-Tools nutzen: Nutze die integrierten Debugging-Tools von Excel VBA, um die Ausführung Deines Codes Schritt für Schritt zu verfolgen.

  • Dokumentation: Halte Dich an die Excel Dokumentation, insbesondere die Abschnitte über Fehlerbehandlung und Datentypen.


FAQ: Häufige Fragen

1. Was bedeutet Überlauf in Excel?
Überlauf in Excel bedeutet, dass das Ergebnis einer Berechnung den maximalen Wert des verwendeten Datentyps überschreitet.

2. Wie kann ich einen Überlauf-Fehler beheben?
Du kannst einen Überlauf-Fehler beheben, indem Du die Datentypen Deiner Variablen anpasst oder die Berechnung mit einer geeigneten Funktion wie CLng durchführst.

3. Was ist der Unterschied zwischen Byte und Long?
Byte kann Werte von 0 bis 255 annehmen, während Long Werte von -2.147.483.648 bis 2.147.483.647 unterstützt. Daher ist Long besser geeignet, wenn Du mit größeren Zahlen arbeitest.

4. Wie kann ich einen SVERWEIS-Überlauf vermeiden?
Stelle sicher, dass der Suchwert existiert und die Bereichsparameter korrekt sind, um Fehler wie #Überlauf zu vermeiden.

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