首页 > 解决方案 > 遍历表的列并删除行

问题描述

我正在尝试遍历值字段,如果字段值等于变量名,则删除整行。第一次迭代成功,检测到值时删除该行。但是,下一次迭代不起作用,因为与变量值匹配的行不会被删除。

For y = 0 To Me.inventory_selection.ListCount - 1
    If Me.inventory_selection.Selected(y) Then
        search_loc = Me.inventory_selection.List(y)
        With Worksheets("Records").ListObjects("Inventory")
            For i = .ListRows.count To 1 Step -1
                If .ListColumns("Location").DataBodyRange(i) = search_loc Then
                    .ListRows(i).Delete 'Shift:=xlUp
                End If
            Next i
        End With
    End If
Next y

我认为这可能与被删除的行有关,并且 i 值没有从它停止的地方开始。请让我知道你的想法,谢谢。

标签: excelvba

解决方案


我看到你评论了代码Shift:=xlUp。但据我所知,如果您删除一行,无论是否提及,excel都会将行向上移动Shift:=xlUp。(如果您不想删除该行并将其他行移到其下方,则可以使用clearcontents代替。但我不确定这是否是您想要的)delete


推荐阅读