Ich habe einen VBA-Makro, der Zeilen von einem Arbeitsblatt in ein anderes kopiert, basierend auf dem Finden von Werten in Zellen in 3 Spalten. Das Makro funktioniert, stürzt jedoch ab, wenn es die Zeile 32767 erreicht. Es gibt keine Formeln oder spezielle Formatierung in dieser Zeile. Außerdem habe ich diese Zeile rausgenommen, aber es stürzt immer noch auf dieser Zeilennummer ab. Ist das eine Einschränkung in Excel? Es gibt einige 43000 in dem Arbeitsblatt, das VerfahrenVBA-Makro stürzt nach 32000 Zeilen ab
Daher wird, frage ich, was mit meinem Makro ist falsch und wie kann ich es das Ende des Arbeitsblatts erhalten erreichen:
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
Dim wks As Worksheet
On Error GoTo Err_Execute
For Each wks In Arbeitsblatt
LSearchRow = 4
LCopyToRow = 4
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
Set wksCopyTo = ActiveSheet
wks.Rows(3).EntireRow.Copy wksCopyTo.Rows(3)
While Len(wks.Range("A" & CStr(LSearchRow)).Value) > 0
If wks.Range("AB" & CStr(LSearchRow)).Value = "Yes" And wks.Range("AK" & CStr(LSearchRow)).Value = "Yes" And wks.Range("BB" & CStr(LSearchRow)).Value = "Y" Then
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
wksCopyTo.Select
wksCopyTo.Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
wksCopyTo.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching
wks.Select
End If
LSearchRow = LSearchRow + 1
Wend
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Next wks
Exit Sub
Err_Execute:
MsgBox "An error occurred."
Bitte helfen!
IIRC VBA ist 'Integer' Typ ist 16 Bit breit. Gibt es ein 'Long'? Ich vergesse. – cHao
Nachschlagen Integer in der Hilfe, dann ändern Sie es in Long –
Danke Jungs - noch alles, was ich tun musste, war den Datentyp auf eine lange ändern – Andy5