1. 刪除所有內容,但保留格式和對象
這種方法只會清除單元格的內容,不會影響格式和嵌入的圖表或對象。
Sub ClearSheetContents()Worksheets("Sheet1").Cells.ClearContents
End Sub
2. 刪除所有內容和格式,但保留對象
這種方法會刪除單元格中的內容和格式,但不會刪除如圖表、形狀等對象。
Sub ClearSheetContentsAndFormats()Worksheets("Sheet1").Cells.Clear
End Sub
3. 刪除所有內容、格式和對象
這種方法會徹底清空工作表,包括所有內容、格式和嵌入的對象。
Sub ClearEverything()With Worksheets("Sheet1").Cells.ClearDim shp As ShapeFor Each shp In .Shapesshp.DeleteNext shpEnd With
End Sub
4. 只刪除特定區域的內容和格式
如果你只需要清空工作表中的特定區域,可以指定范圍。
Sub ClearSpecificRange()Worksheets("Sheet1").Range("A1:D10").Clear
End Sub
5. 刪除整個工作表后重新添加
如果徹底刪除工作表然后重新開始,可以使用這種方法。這種方法會移除工作表后重新創建一個同名的工作表。
Sub DeleteAndRecreateSheet()Dim wsName As StringwsName = "Sheet1"Application.DisplayAlerts = FalseWorksheets(wsName).DeleteWorksheets.Add(After:=Worksheets(Worksheets.Count)).Name = wsNameApplication.DisplayAlerts = True
End Sub
6. 使用UsedRange清空
如果只想清空工作表中使用過的區域,可以使用UsedRange
屬性。
Sub ClearUsedRange()Worksheets("Sheet1").UsedRange.Clear
End Sub
舉例
從單元格 F1 開始,清除該點向右和向下的所有已使用范圍(即F1及其右側和下方的所有單元格)。
Sub ClearFromF1DownRight()Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets("Sheet1")' 獲取從F1開始向右向下的UsedRangeDim startCell As RangeSet startCell = ws.Range("F1")' 確定結束單元格Dim lastRow As LongDim lastColumn As LonglastRow = ws.Cells(ws.Rows.Count, startCell.Column).End(xlUp).RowlastColumn = ws.Cells(startCell.Row, ws.Columns.Count).End(xlToLeft).Column' 創建區域范圍Dim clearRange As RangeSet clearRange = ws.Range(startCell, ws.Cells(lastRow, lastColumn))' 清空內容和格式clearRange.Clear
End Sub
代碼解釋
- 設置工作表:首先定義并設置工作表對象
ws
。 - 確定起始單元格:設置起始單元格
startCell
為F1。 - 計算結束單元格:
- 使用
End(xlUp)
找到從工作表底部向上的最后一個非空單元格的行號(影響F列)。 - 使用
End(xlToLeft)
找到從工作表最右邊向左的最后一個非空單元格的列號(影響第一行)。
- 使用
- 設置清除范圍:使用
Range
對象創建一個從起始單元格到計算出的最后一個單元格的范圍。 - 執行清除操作:使用
Clear
方法清除該范圍內的內容和格式。
這個代碼片段會清空從F1開始的所有已使用的單元格,包括它們的內容和格式。