以相反的顺序循环使用的单元格

Loop through used cells in the reverse order

我试图使用以下代码删除 ACTIVE sheet 中不需要的列:

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

使用此代码 sheets 正在删除数组中未提及的内容,但如果我要删除第 2 列,则第 3 列将成为第 2 列,因此在这种情况下,代码将跳过如果值是第 2 列中的其他值,则第 2 列。

有什么方法可以将此代码从上次使用的列转换到第一列。 我尝试了第 1 步,但它显示代码本身有错误。

感谢任何帮助。

提前致谢

使用 for 循环并从 usedRange.Columns.Count 向后执行第 -1 步。您从未使用过 DeleteRange,所以我删除了它。

Sub DeleteUnwantedColumns()
    
    Dim arr As Variant
    Dim c As Integer
    
    arr = Array("FY17", "FY18", "FY19", "FY20", "FY21")
        
    For c = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
        If IsError(Application.Match(ActiveSheet.Cells(1, c), arr, 0)) Then
            ActiveSheet.Columns(c).Delete
            End If
        Next
        
End Sub