以相反的顺序循环使用的单元格
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
我试图使用以下代码删除 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