Wie behebe ich den vba-fehler 13?
Eine Typinkongruenz (Fehler 13) tritt auf, wenn Sie versuchen, einen Wert für eine Variable anzugeben, der nicht mit ihrem Datentyp übereinstimmt. Wenn Sie in VBA eine Variable deklarieren, müssen Sie ihren Datentyp festlegen. Wenn Sie einen anderen Wert als diesen Datentyp angeben, erhalten Sie den Nichtübereinstimmungsfehlertyp 13.
In diesem Tutorial werden wir sehen, in welchen möglichen Situationen beim Ausführen eines Codes der Laufzeitfehler 13 auftreten kann.
Fehler bei der Nichtübereinstimmung des Datumstyps
In VBA gibt es einen bestimmten Datentyp zur Verarbeitung von Datumsangaben. Dies geschieht manchmal, wenn Sie eine Variable zum Speichern eines Datums verwenden und der von Ihnen angegebene Wert unterschiedlich ist.
Im folgenden Code habe ich eine Variable als Datum deklariert und dann den Wert der Zelle A1 angegeben, in der ich nur ein Datum haben soll. Aber wie Sie sehen, hat das Datum, das ich in Zelle 1 habe, nicht das richtige Format, VBA kann es nicht als Datum identifizieren.
Sub myMacro() Dim iVal As Date iVal = Range("A1").Value End Sub
Fehler bei Typkonflikt mit Nummer
Beim Umgang mit Zahlen wird die gleiche Fehlermeldung angezeigt, wenn Sie versuchen, einer Variablen eine Zahl zuzuweisen und einen anderen Wert erhalten.
Im folgenden Beispiel liegt ein Fehler in Zelle A1 vor, bei der es sich angeblich um einen numerischen Wert handelt. Wenn Sie den Code ausführen, zeigt Ihnen VBA den Laufzeitfehler 13 an, da der Wert nicht als Zahl identifiziert werden kann.
Sub myMacro() Dim iNum As Long iNum = Range("A6").Value End Sub
Laufzeitfehler 6 Überlauf
In VBA gibt es mehrere Datentypen für den Umgang mit Zahlen, und jeder dieser Datentypen verfügt über einen Zahlenbereich, den Sie ihm zuweisen können. Es tritt jedoch ein Problem auf, wenn Sie eine Zahl angeben, die außerhalb des Bereichs des Datentyps liegt.
In diesem Fall zeigen wir Ihnen den Laufzeitfehler 6 Überlauf an, der darauf hinweist, dass Sie den Datentyp ändern müssen und die von Ihnen angegebene Zahl außerhalb des zulässigen Bereichs liegt.
Andere Situationen, in denen dies passieren kann
Es kann auch andere Situationen geben, in denen der Laufzeitfehler 14: Typkonflikt auftritt.
- Wenn Sie einer Tabelle einen Bereich zuweisen, dieser Bereich jedoch nur aus einer Zelle besteht.
- Wenn Sie eine Variable als Objekt definieren, beim Schreiben des Codes jedoch ein anderes Objekt als diese Variable angeben.
- Wenn Sie eine Variable als Arbeitsblatt angeben, aber die Tabellensammlung im Code verwenden oder umgekehrt.
So beheben Sie Typkonflikte (Fehler 13)
Der beste Weg, mit diesem Fehler umzugehen, besteht darin, auf die Anweisung zuzugreifen, um eine bestimmte Codezeile auszuführen oder dem Benutzer ein Meldungsfeld anzuzeigen, wenn der Fehler auftritt. Sie können das Gelände aber auch Schritt für Schritt prüfen, bevor Sie es ausführen. Dazu müssen Sie das VBA-Debug-Tool verwenden, oder Sie können auch die Tastenkombination F8 verwenden.