Außer, dass ich das anders angehen würde, ändere als erstes mal alle deine Datentypen Integer zu Long. Integer hat nur einen Wertebereich bis 2^16 = 65.536. Da kannst du bereits mit dem Inhalt von 2 Zellen drüber liegen. Gleiches gilt für die Zeilenzahl. Seit Excel 2007 sind über 1 Mio. Zeilen möglich. Geht nicht mit Integer. Abgesehen davon werden Integer und Long intern gleich verwaltet, womit auch der gleiche Speicherbedarf einher geht.
Sind Umlaute bei dir keine Buchstaben? Geht es insgesamt "nur" um deutsche Buchstaben?
Du verwendest zu viele Schleifen. Eine andere herangehensweise dürfte schneller sein:
Alle Zellen zu einem String konkatinieren. Länge des Strings in einer Variablen speichern. Alle zu zählenden Zeichen mit Replace() aus dem String werfen. Was an Länge übrig bleibt von der zuerst gespeicherten Länge abziehen. Auf die Weise könntest du sogar sehr einfach Zähler für jeden einzelnen Buchstaben einrichten und angeben, wie oft er im Text vorkommt.
Abgesehen davon, was ist denn der Fehler? Welches Verhalten willst du ändern? Gibt es Fehlermeldungen?
|