Forum: PC-Programmierung Schleife in Excel Makro


von Chris (Gast)


Lesenswert?

Hallo,

ich würde gerne in einer Excel Tabelle Daten reduzieren indem ich 
einfach nur jede 10. Zeile übernehme und den Rest lösche. Dafür hab ich 
mich mit einem Makro versucht, habe aber bisher garnichts mit VB 
gemacht. Nachdem ich ein wenig mit dem Makrorecorder gespielt habe und 
nach der Syntax von Schleifen gesucht habe, habe ich mir folgendes 
überlegt:

Sub test()

    For i = 5 To 6600
        Rows("i:i+8").Select
        Selection.Delete Shift:=xlUp
    Next
End Sub

Beim Ausführen kommt aber dann dass die Typen unverträglich wären in der 
Rows(... Zeile.

Was kann ich da tun? Muss man bei VB eigentlich keine Variablen 
deklarieren oder so?

Gruß,
Chris

von Tany (Gast)


Lesenswert?

ändere aus Rows("i:i+8").Select --> Rows(i).Select

Gruss

von Chris (Gast)


Lesenswert?

Dank für die Antwort. Das Programm läuft dann zwar, aber es löscht nur 
jede zweite Zeile. Das i+8 sollte ja immer 9 Zeilen markieren damit 
diese dann auf einmal gelöscht werden.

von Holger S. (strabe)


Lesenswert?

guckst Du Range()

von Tany (Gast)


Lesenswert?

For i = 5 To 6600
Range(Rows(i + 1), Rows(i + 7)).Select
Selection.Delete
Next

von Chris (Gast)


Lesenswert?

Vielen Dank für die Hinweise. Warum das mit dem was mir der 
Makrorecorder gezeigt hat nicht funktioniert hab ich zwar noch immer 
nicht durchschaut, aber mit Range().Select hats funktioniert. Ich musste 
nur noch das i+7 in i+9 abändern.

Vielen Dank!

von Thomas B. (escamoteur)


Lesenswert?

Ähm, wie soll "i:i+8" bitteschön funktionieren? Ist doch ein string, wie 
soll da i richtig ersetzt werden.

Wenn dann müsste es wohl so aussehen:

CStr(i)+":"+CStr(i+8)

Gruß
Tom

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.