Excel VBA 循环执行以清除所有工作表

Excel VBA Loop-Implementation to Clear All Sheets

我正在尝试清除工作簿中第 3 行以下的所有 sheet。我是这样完成的:

With Sheets("Wizard Sheets Missing in Import")
    .Rows("3:" & .Rows.Count).Delete
End With

With Sheets("Import Sheets Missing in Wizard")
    .Rows("3:" & .Rows.Count).Delete
End With

With Sheets("Items Missing from Wizard")
    .Rows("3:" & .Rows.Count).Delete
End With

With Sheets("Items Missing from Imports")
    .Rows("3:" & .Rows.Count).Delete
End With

但如果可能的话,我想实现一个循环。我试过了,它只清除了其他 sheets 的活动 sheet 和 none,即使它被告知循环遍历 sheets(据我所知我知道):

For Each vWorksheet In ActiveWorkbook.Sheets
    With ActiveSheet
        Rows("3:" & .Rows.Count).Delete
    End With
Next

关于如何为这个过程制作一个更流线型的循环有什么想法吗?

它需要看起来更像这样

For Each vWorksheet In ActiveWorkbook.Worksheets
    vWorksheet.Rows("3:" & vWorksheet.Rows.Count).Delete
Next

对不起,我贴错了代码。试试这个。

Sub DeleteRows()
Dim n As Integer

n = ActiveWorkbook.Worksheets.Count

For x = 1 To n
    Sheets(x).Rows(3 & ":" & Sheets(x).Rows.Count).Delete
Next

End Sub
Option Explicit

Public Sub ClearAllWorksheets()
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        ws.UsedRange.Offset(2).Rows.Delete
    Next
End Sub

  • 仅清除包含数据的行,不清除 ActivateSelect 对象
  • 仅适用于代码为 运行 的文件 - ThisWorkbook
  • 仅适用于 Worksheets - 不包括
    • 图表表
    • 宏表(Excel 4.0 XLM 文件)
    • 对话框表 (Excel 5.0)