Hilfe bei Laufzeitfehler 1004 bei for-Schleife
16.12.2014 22:14:47
Hendrik
erstmal ein großes Lob an dieses Forum. Ich bin Anfänger mit VBA und habe schon einige Tipps hier entnehmen können. Nun stehe ich selber auf dem Schlauch.
In der angehängten Excel-Datei (https://www.herber.de/bbs/user/94452.xls)
habe ich im ersten Tabellenblatt 2 Spalten (nämlich die 2. und die 4.), die jeweils Messdaten in einer Spalte stehen haben. Spalte 1 und 3 sind x-Koordinaten der Messspur. Ich möchte, dass pro x-Koordinate die Daten in eine neue Spalte auf dem zweiten Tabellenblatt kommen.
Also alle Daten der zweiten Spalte, die sich auf die x-Koordinate 5890 in der ersten Spalte beziehen in die erste Spalte des zweiten Tabellenblattes, alle Daten der zweiten Spalte, die sich auf 55890 in der ersten Spalte beziehen, in die zweite Spalte usw... Insgesamt bekomme ich dann auf dem zweiten Tabellenblatt 9 neue Spalten.
Dies soll dann für die 4. Spalte wiederholt werden, die sich auf die 3. Spalte bezieht. Da habe ich dann die Variable "sprung" eingeführt, damit in der 10. Spalte auf dem zweiten Tabellenblatt die Tabelle angehängt wird. Da dies noch mehr Dateien werden, habe ich eine Schleife geschrieben, mit "m" als Laufvariable. Da setzt das Programm aber aus (Laufzeitfehler 1004), ich kann mir nicht erklären, warum. Wenn ich m=1 oder m=3 ohne Schleife mache, funktionierts. Mit Schleife nicht...
Bin für Hilfe mehr als dankbar ! Besten Gruß !
Angehängt der Code:
Sub Gesamtmakro()
Dim cDir As String
Dim sPath As String
Dim i As Integer
Dim n As String
Dim m As Integer
Dim zaehler1 As Integer
m = 1
i = 1
sprung = 0
zaehler1 = 1
zaehler2 = 0
zaehler3 = 0
zaehler4 = 0
zaehler5 = 0
zaehler6 = 0
zaehler7 = 0
zaehler8 = 0
sprung = 0
For m = 1 To 3 Step 2
For i = 1 To 13500
'1. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 5890 Then
ThisWorkbook.Worksheets(2).Cells(i, m + sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler1 = zaehler1 + 1
End If
'2. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 55890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1, m + 1 + sprung) = ThisWorkbook.Worksheets(1). _
Cells(i, m + 1)
zaehler2 = zaehler2 + 1
End If
'3. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 105890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2, m + 2 + sprung) = ThisWorkbook. _
Worksheets(1).Cells(i, m + 1)
zaehler3 = zaehler3 + 1
End If
''4. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 155890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3, m + 3 + sprung) = _
ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler4 = zaehler4 + 1
End If
''5. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 205890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3 - zaehler4, m + 4 + _
sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler5 = zaehler5 + 1
End If
''6. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 255890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3 - zaehler4 - zaehler5, _
m + 5 + sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler6 = zaehler6 + 1
End If
''7. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 305890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3 - zaehler4 - zaehler5 - _
zaehler6, m + 6 + sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler7 = zaehler7 + 1
End If
''8. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 355890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3 - zaehler4 - zaehler5 - _
zaehler6 - zaehler7, m + 7 + sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
zaehler8 = zaehler8 + 1
End If
''9. Mess-Spur
If ThisWorkbook.Worksheets(1).Cells(i, m) = 405890 Then
ThisWorkbook.Worksheets(2).Cells(i + 1 - zaehler1 - zaehler2 - zaehler3 - zaehler4 - zaehler5 - _
zaehler6 - zaehler7 - zaehler8, m + 8 + sprung) = ThisWorkbook.Worksheets(1).Cells(i, m + 1)
End If
'n = n + 1
Next i
sprung = sprung + 7
Next m
End Sub