【问题标题】:How to keep header and delete all data?如何保留标题并删除所有数据?
【发布时间】:2021-02-11 15:39:38
【问题描述】:

我正在尝试保留第一行并删除/删除名为“Main”的工作表的所有数据。我下面的代码不会从名为“Main”的工作表中删除任何数据。

Sub clean_sheets()

'-------Clear Main Sheet all data will be removed except Header Row-----
With ActiveWorkbook.Worksheets("Main")
   Rows("2:" & Rows.Count).ClearContents
End With

'----Delete all existing worksheets after "Main" Worksheet
' and save the active workbook for next run------

Dim xWs As Worksheet

Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
    If xWs.Name <> "MacroButtons" And xWs.Name <> "Main" Then
        xWs.Delete
    End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveWorkbook.Save

End Sub

以上是删除除标题行之外的所有数据,并删除除“主”表之外的任何其他表。

我只想从名为“Main”的工作表中删除除标题行之外的所有数据。

主要 Excel 数据

它应该删除除第 1 行标题行之外的所有数据并调整工作表大小。

【问题讨论】:

  • 'With x' 提供了一个快捷限定符。此快捷方式限定符是前导“.”。因此,如果您需要 Rows 语句来引用 ActiveWorkbook.Worksheets("Main") 中的行,则必须在其前面加上前导 '.'给.Rows......

标签: vba execl


【解决方案1】:

试试看。

Sub test1()
Sheets("Sheet1").Rows("2:" & Sheets("Sheet1").Rows.Count).ClearContents
End Sub


Sub test2()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Worksheets
    If ws.Name <> "Sheet1" Then ws.Delete
Next ws
Application.DisplayAlerts = True
End Sub

试试这个

Sub test1()
    Application.DisplayAlerts = FALSE
    Sheets("Sheet1").Rows("2:" & Sheets("Sheet1").Rows.Count).ClearContents
    
    Dim ws          As Worksheet
    
    For Each ws In Worksheets
        If ws.Name <> "Sheet1" Then ws.Delete
    Next ws
    Sheet1.Columns.AutoFit
    ActiveWorkbook.Save
    Application.DisplayAlerts = TRUE
    
End Sub

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多