根据标题值删除列,不跳过列。使用VBA

时间:2017-10-10 11:34:50

标签: excel vba excel-vba

我正在尝试使用VBA删除基于标头值的数据中的列。我绝对是新手,所以不胜感激。目前我已经设法找到了一些可以执行此操作的代码,除了每次运行宏时它都删除了一些列,但似乎跳过了一些列。我认为因为当一个列被删除时,该列然后移动到一个新位置,即F5被删除,所以G5移动到F5然后设法逃避查询。这是代码

Sub DeleteSpecifcColumn()
    Set MR = Range("A1:D1")
    For Each cell In MR
        If cell.Value = "old" Then cell.EntireColumn.Delete
    Next
End Sub

1 个答案:

答案 0 :(得分:1)

这是一个经典问题,如果要删除行或列,请始终从末尾开始删除。

Sub DeleteSpecifcColumn()
    For i = 4 To 1 Step -1
        If Cells(1, i) = "old" Then
            Cells(1, i).EntireColumn.Delete
        End If
    Next i
End Sub