我正在尝试使用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
答案 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