Ich versuche, einen Dynamikbereich herauszufinden, der einen Bereich beginnend mit der aktiven Zelle in einer für jede Schleife auswählt. Wenn z. B. Zelle A2 für jede Zellenschleife ausgewählt ist, der Bereich in der Schleife A2: A20 und "IP" enthält, wird der Bereich A2: M2 ausgewählt, der Inhalt gelöscht und alle Werte verschoben unten, A3: M20, bis die leeren Zellen gefüllt sind.Dynamischer Bereich für jede Schleife
Sub deletewirelessdevice()
Dim rng As Range
Dim wksSource As Worksheet
Set wksSource = ActiveWorkbook.Sheets("dt-attext")
Set rng = wksSource.Range("A2:A500")
For Each Cell In rng
If InStr(1, ActiveSheet.Range(ActiveCell).Value, "IP") > 0 Then
Range(ActiveCell, "M" & ActiveCell.Row).Select.Delete Shift:=xlUp
Next Cell
End Sub
Ich bin nicht sicher, ob es ein Fehler bei der Auswahl und Löschung ist, da ich nicht den Code bekommen kann aufgrund eines Next ohne Kompilierung-Fehler zu laufen. Es gibt einen passenden für, also weiß ich nicht, was das Problem ist. Jeder Rat ist willkommen.
Sie vermissen das 'End If'. Außerdem ändern Sie bei jeder Schleifeniteration nichts. Ersetzen Sie 'ActiveCell' gegebenenfalls durch' Cell' – Tom
Ein fehlendes 'End If' verursacht Ihren Fehler. Aber 'Range (ActiveCell)' funktioniert nur, wenn die aktive Zelle eine Zellenadresse enthält. – SJR
Sie können "ActiveSheet.Range (ActiveCell) .Value" durch "ActiveCell.Value" ersetzen, aber ich vermute, was Sie eigentlich wollen, ist 'Cell.Value2' – Tom