Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Laufzeitfehler 13 nur in Pers_Makros

VBA: Laufzeitfehler 13 nur in Pers_Makros
16.10.2018 08:37:20
Rob
Hallo zusammen,
wenn ich folgenden Code über ein Modul aus meiner "Persönlichen Makroarbeitsmappe" ausführe, erhalte ich den Laufzeitfehler 13 bei lenCell = Len(Cells(i, 72)). Allerdings tritt der Fehler komischer Weise nicht im Debug-Modus mit F8 auf - auch nicht, wenn ich den Code über ein Modul im Workbook ausführe!?!?
Ich habe mir jetzt damit beholfen, den Fehler mit "On Error Resume Next" zu umgehen - er führt _
auch alle anschließenden Befehle in der If-Schleife korrekt aus - allerdings ist das nicht die _ schickste Methode. Ich würde gerne verstehen warum:

Dim lastRow As Long
Dim i, lenCell As Integer
lastRow = Sheets(1).Cells(Rows.Count, 72).End(xlUp).Row
For i = 2 To lastRow
On Error Resume Next
lenCell = Len(Cells(i, 72))
If lenCell = 2 Then
Cells(i, 72) = Cells(i, 72) & "000"
ElseIf lenCell = 3 Then
Cells(i, 72) = Cells(i, 72) & "00"
ElseIf lenCell = 4 Then
Cells(i, 72) = Cells(i, 72) & "0"
End If
Next i
On Error GoTo 0

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Laufzeitfehler 13 nur in Pers_Makros
16.10.2018 08:48:31
ChrisL
Hi Rob
Vielleicht ein Referenzierungsproblem (einmal Sheets(1) und einmal ActiveSheet). Probiere mal...
Sub t()
Dim i As Long
Application.ScreenUpdating = False
With Sheets(1)
For i = 2 To .Cells(Rows.Count, 72).End(xlUp).Row
.Cells(i, 72) = .Cells(i, 72) & WorksheetFunction.Rept("0", 5 - Len(.Cells(i, 72)))
Next i
End With
End Sub
cu
Chris
Anzeige
AW: VBA: Laufzeitfehler 13 nur in Pers_Makros
16.10.2018 09:42:58
Rob
Die Referenzierung auf die Sheets habe ich auch schon probiert - hat leider nicht funktioniert.
Ich habe jetzt mal die Integer-Variablen unabhängig voneinander ausgewiesen. VBA hat anscheinend mit "Einzeilern" wie Dim i, lenCell as Integer von Zeit zu Zeit Interpretationsprobleme und jetzt läuft das Makro durch:
Dim i as Integer
Dim lenCell as Integer
PS: Das Witzige bei der Sache; ich habe es anschließend wieder auf eine Zeile umgeschrieben und es lief auch so problemlos durch. Muss man nicht verstehen...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige