【发布时间】:2021-12-30 19:41:36
【问题描述】:
我试图使用以下代码删除 ACTIVE 表中不需要的列:
Sub DeleteUnwantedColumns()
Dim LastUsedCell As Integer
Dim deleteRange As Range
LastUsedCell = ActiveSheet.UsedRange.Columns.count
Set deleteRange = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, LastUsedCell))
arr = Array("FY17", "FY18", "FY19", "FY20", "FY21")
For Each cell In ActiveWorkbook.Worksheets("Sheet1").Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, LastUsedCell))
If IsError(Application.Match(cell.Value, arr, 0)) Then
ActiveSheet.Cells.EntireColumn.Delete
End If
Next
End Sub
使用此代码表正在删除数组中未提及的内容,但如果我要删除第 2 列,则第 3 列将是第 2 列,因此在这种情况下,如果值是某些东西,代码将跳过第 2 列其他在第 2 列中。
有没有办法让这段代码从最后使用的列到第一列。 我尝试使用 step-1 ,但它在代码本身中显示错误。
感谢任何帮助。
提前谢谢你
【问题讨论】:
-
Step -1仅适用于索引循环,不适用于For Each循环。