dynamic范围与每个循环

我试图找出一个dynamic范围,将select从每个循环中的活动单元格开始的范围。 例如,如果在我的每个单元循环中select了单元格A2,则循环中的范围为A2:A20,并且它包含“IP”,它将select范围A2:M2,删除内容并将所有值下面,A3:M20,填满空的单元格。

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 

我不确定在select和删除时是否有错误,因为由于Next没有编译错误,我无法运行代码。 有一个匹配,所以我不知道是什么问题。 任何build议是受欢迎的。

你的代码有很多问题,所以我调整了它,并推断你的意图。 这应该工作,但是请阅读上面的评论,以及如何处理下一些指针

 Public Sub deletewirelessdevice() Dim DelRng As Range Dim ColOffset As Long With ActiveWorkbook.Sheets("dt-attext") ColOffset = Range("M" & 1).Column - 1 For Each cell In .Range("A2:A500") If InStr(cell.Value2, "IP") Then If DelRng Is Nothing Then Set DelRng = Range(cell, cell.Offset(0, ColOffset)) Else Set DelRng = Union(DelRng, Range(cell, cell.Offset(0, ColOffset))) End If End If Next cell If Not DelRng Is Nothing Then DelRng.Delete Shift:=xlUp End With End Sub