Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

function liefert Laufzeitfehler 6

function liefert Laufzeitfehler 6
06.10.2020 16:28:53
Stefan
Moin Forumsgemeinde...
ich weiß mal wieder nicht weiter.
die nachfolgende Function liefert mir aus einem String die darin enthaltenen Zahlen

Function hausnummer(rngzelle As Range) As String
Dim lngZ As Long
Application.Volatile
For lngZ = 1 To Len(rngzelle)
Select Case Mid(rngzelle, lngZ, 1)
Case 0 To 9
hausnummer = hausnummer & Mid(rngzelle, lngZ, 1)
Case Else
End Select
Next lngZ
If hausnummer = "" Then hausnummer = "0"
End Function

Aufgerufen wird sie mit dieser Befehlszeile aus einem Makro:
hausnr = CInt(hausnummer(.Range("E" & z)))
Leider liefert sie nicht immer, sondern meldet bei manchen übegebenen Zellinhalten Laufzeitfehler 6: Überlauf
Beispielweise bei dem folgenden Inhalt:
Papenstraße 123-125
Ich kann dezidiert mittels Einzelschritten verfolgen wie die Function nacheinander die Ziffern 123125 fehlerlos extrahiert, in hausnummer steht dann der string "123125" und sobald die Befehlszeile End
Function aufgerufen wird (also offensichtlich bei der Rückgabe des strings an das aufrufende _
Makro), kommt der Fehler.
irgendeine Idee, was da die Ursache ist ?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: function liefert Laufzeitfehler 6
06.10.2020 16:38:03
ChrisL
Hi
Datentyp Integer = Ganzzahlen -32.768 bis 32.767
Die Zahl 123125 ist zu gross für diesen Datentyp, weshalb der Fehler "Überlauf" angezeigt wird.
Mittels Datentyp Long (CLng anstelle CInt) sollte es funktionieren.
cu
Chris
AW: function liefert Laufzeitfehler 6
06.10.2020 16:38:04
Nepumuk
Hallo Stefan,
ein Interger kann nur Zahlen von -32.768 bis 32.767 aufnehmen. Deine Zahl ist 123.125 also außerhabl des Bereichs. Dimensioniere hausnr As Long und dann so:
hausnr = CLng(hausnummer(.Range("E" & z)))
Gruß
Nepumuk
AW: function liefert Laufzeitfehler 6
06.10.2020 18:20:26
Daniel
Hi
welchen Sinn macht es, aus einer Hausnummer eine Zahl (CInt) zu erzeugen?
willst du damit rechnen?
neben der vorhandenen von-bis-Angabe gibt's ja auch noch reguläre Buchstabenerweiterungen (1A, 2B), dh ein sinnvolles Ergebnis bekommst du damit zwar häufig, aber nicht immer.
wäre es auch für deinen fall nicht besser, aus "123-125" als Zahl nur die 123 zu machen anstatt der 123125?
dann hättest du zumindest was halbwegs passendes, und nicht einen kompletten Unfug.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige