Hallo liebes Forum,
ich habe ein seltsames Problem mit meinem VBA-Code und wollte mal fragen, ob hier jemand eine Idee hat, woran es liegen könnte.
1. Was macht der Code
Ich lege direkt beim Öffnen der Datei ein Public Array an.
Dann wird die letzte Zeile einer Tabelle ermittelt (Variable LZ), damit ich das Array in ein 2-dimensionales Array mit einer vorgegebenen Anzahl an Plätzen umwandeln kann.
Anschließend werden die Werte aus eben dieser Tabelle in zwei verschachtelten FOR-Schleifen in das Array eingelesen.
Das mache ich, weil mit verschiedenen Buttons Aktionen und Berechnungen ausgelöst werden, die eben die Daten aus dieser Tabelle brauchen und es geht schneller, wenn ich die Werte in einem Array verfügbar mache, statt jedesmal über Zell-Aktionen zu gehen. Aber das nur am Rande.
2. Das Problem
Das Programm läuft manchmal ohne Probleme. Auch die folgende problematische Fehlerzeile, bei der eine Jahreszahl mit dem Wert einer Combobox verglichen wird, wird dabei mehrfach ohne Fehler abgearbeitet. Aber irgendwann kommt hier ein "Typen unverträglich"-Fehler in der ersten Zeile:
Nun versuche ich im Debug-Fenster mit
den Wert auszulesen und es erscheint auch ein "Laufzeitfehler 13 - Typen unverträglich"-Fehler.
Auch wenn ich i oder 6 durch beliebige Zahlen im Array-Bereich ersetze, kommt immer der gleiche Fehler. Ganz so, als wäre das Array auf einmal defekt. Ich meine, wie kann die einfache Debug.Print-Ausgabe eine Typen-Unverträglichkeit haben? Der Befehl sollte doch jede Art von Variable ausgeben können, oder?
Hatte auch schon versucht eine Typenkonvertierung zu erzwingen z.B mit:
Aber auch das funktioniert nicht. Gleicher Fehler.
Das Array_Quelle wird nach dem Füllen mit den Werten nicht mehr verändert (also kein Re-Dim oder das neue Daten geschrieben werden o.ä.)
Ich habe keine Idee, woran das liegen könnte. Kann mir da jemand helfen?
MfG
Mick
ich habe ein seltsames Problem mit meinem VBA-Code und wollte mal fragen, ob hier jemand eine Idee hat, woran es liegen könnte.
1. Was macht der Code
Ich lege direkt beim Öffnen der Datei ein Public Array an.
Code:
Public Array_Quelle
Dann wird die letzte Zeile einer Tabelle ermittelt (Variable LZ), damit ich das Array in ein 2-dimensionales Array mit einer vorgegebenen Anzahl an Plätzen umwandeln kann.
Code:
Redim Array_Quelle(1 to LZ, 1 to 12)
Anschließend werden die Werte aus eben dieser Tabelle in zwei verschachtelten FOR-Schleifen in das Array eingelesen.
Das mache ich, weil mit verschiedenen Buttons Aktionen und Berechnungen ausgelöst werden, die eben die Daten aus dieser Tabelle brauchen und es geht schneller, wenn ich die Werte in einem Array verfügbar mache, statt jedesmal über Zell-Aktionen zu gehen. Aber das nur am Rande.
2. Das Problem
Das Programm läuft manchmal ohne Probleme. Auch die folgende problematische Fehlerzeile, bei der eine Jahreszahl mit dem Wert einer Combobox verglichen wird, wird dabei mehrfach ohne Fehler abgearbeitet. Aber irgendwann kommt hier ein "Typen unverträglich"-Fehler in der ersten Zeile:
Code:
If Array_Quelle(i, 6) < Sheets("View").Combo_Von.Value Then
Switch_Go = 0
End If
Nun versuche ich im Debug-Fenster mit
Code:
Debug.Print (Array_Quelle(i,6))
den Wert auszulesen und es erscheint auch ein "Laufzeitfehler 13 - Typen unverträglich"-Fehler.
Auch wenn ich i oder 6 durch beliebige Zahlen im Array-Bereich ersetze, kommt immer der gleiche Fehler. Ganz so, als wäre das Array auf einmal defekt. Ich meine, wie kann die einfache Debug.Print-Ausgabe eine Typen-Unverträglichkeit haben? Der Befehl sollte doch jede Art von Variable ausgeben können, oder?
Hatte auch schon versucht eine Typenkonvertierung zu erzwingen z.B mit:
Code:
Debug.Print (Cdbl(Array_Quelle(i,6)))
Das Array_Quelle wird nach dem Füllen mit den Werten nicht mehr verändert (also kein Re-Dim oder das neue Daten geschrieben werden o.ä.)
Ich habe keine Idee, woran das liegen könnte. Kann mir da jemand helfen?
MfG
Mick
Zuletzt bearbeitet: