Removing Formats From Entire Worksheet with VBA
Categories:
Removing Formats From an Entire Excel Worksheet with VBA

Learn how to efficiently clear all formatting from an Excel worksheet using various VBA methods, including clearing all formats, specific formats, and handling special cases.
Excel worksheets can quickly become cluttered with various formatting styles, making data difficult to read or inconsistent with new requirements. Manually clearing these formats can be tedious and error-prone, especially for large datasets. This article provides comprehensive VBA solutions to remove all formatting from an entire worksheet, offering flexibility to clear all formats or target specific types like number formats, fonts, or borders.
Understanding Excel Formatting and VBA's Clear Methods
Excel applies a wide array of formatting options to cells, including number formats, font styles, colors, borders, alignment, and more. VBA provides several methods to clear these formats, primarily through the ClearFormats
and Clear
methods of the Range
object. Understanding the nuances of each is crucial for effective automation.
flowchart TD A[Start VBA Macro] --> B{"Select Target Range"} B --> C{Entire Worksheet?} C -->|Yes| D[Set Range = ActiveSheet.UsedRange] C -->|No| E[Set Range = Specific Range] D --> F{Clear All Formats?} E --> F F -->|Yes| G[Range.ClearFormats] F -->|No| H[Range.ClearContents] H --> I[Range.ClearComments] I --> J[Range.ClearHyperlinks] J --> K[Range.ClearOutline] K --> L[Range.ClearValidation] G --> M[End Macro] L --> M
VBA Logic for Clearing Formats and Other Cell Properties
Method 1: Clearing All Formats from the Used Range
The most common scenario is to remove all formatting from the 'used range' of a worksheet. The UsedRange
property returns a Range
object representing the smallest range that encompasses all cells that have ever contained data or formatting. The ClearFormats
method then removes all formatting (number formats, fonts, borders, fill colors, etc.) from this range, leaving the cell values intact.
Sub ClearAllFormatsFromUsedRange()
' Select the active worksheet
Dim ws As Worksheet
Set ws = ActiveSheet
' Clear all formats from the used range of the worksheet
ws.UsedRange.ClearFormats
MsgBox "All formats cleared from the used range of " & ws.Name, vbInformation
End Sub
VBA code to clear all formats from the active worksheet's used range.
UsedRange
is generally more efficient than selecting the entire sheet (Cells.ClearFormats
) as it only processes cells that have been used, potentially saving processing time on very large, sparsely populated sheets.Method 2: Clearing Specific Formatting Types
Sometimes, you might only want to remove certain types of formatting while preserving others. VBA allows for more granular control by setting specific properties to their default values or by using methods like ClearContents
(which removes values and formulas but not formats) in conjunction with manual format resets.
Sub ClearSpecificFormats()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim targetRange As Range
Set targetRange = ws.UsedRange
With targetRange
' Clear only number formats (e.g., currency, date, percentage)
.NumberFormat = "General"
' Reset font properties to default
With .Font
.Name = "Calibri" ' Or your desired default font
.Size = 11 ' Or your desired default size
.Bold = False
.Italic = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
' Clear borders
.Borders.LineStyle = xlNone
' Clear fill color
.Interior.Pattern = xlNone
' Reset alignment
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
MsgBox "Specific formats cleared from the used range of " & ws.Name, vbInformation
End Sub
VBA code to clear specific formatting types like number format, font, borders, and fill.
NumberFormat = "General"
is the default for most cells, but other properties might require specific values.Method 3: Clearing Everything (Contents and Formats)
If you need to completely wipe a worksheet clean, including all data, formulas, and formatting, the Clear
method is the most direct approach. This is equivalent to selecting all cells and pressing the Delete key, then manually clearing all formats.
Sub ClearAllContentsAndFormats()
' Select the active worksheet
Dim ws As Worksheet
Set ws = ActiveSheet
' Clear everything (contents, formats, comments, etc.) from the used range
ws.UsedRange.Clear
MsgBox "All contents and formats cleared from the used range of " & ws.Name, vbInformation
End Sub
VBA code to clear all contents and formats from the active worksheet's used range.
Clear
with extreme caution, as it permanently deletes all data and formatting. Always back up your workbook or test on a copy before running this macro on important data.Handling Entire Sheet vs. Used Range
While UsedRange
is generally preferred for efficiency, there might be cases where you genuinely want to clear formats from the entire sheet, including cells that have never been used but might have inherited formatting from row/column operations. In such cases, you can use Cells
or Rows
/ Columns
properties.
Sub ClearFormatsFromEntireSheet()
' Select the active worksheet
Dim ws As Worksheet
Set ws = ActiveSheet
' Clear all formats from ALL cells on the worksheet
ws.Cells.ClearFormats
MsgBox "All formats cleared from the entire sheet " & ws.Name, vbInformation
End Sub
VBA code to clear all formats from every cell on the active worksheet.
ws.Rows("1:10").ClearFormats
or ws.Columns("A:C").ClearFormats
for better performance than ws.Cells.ClearFormats
.