Format Painter and other ways to copy formatting in Excel

This short tutorial shows how to copy formatting in Excel using Format Painter, Fill Handle and Paste Special options. These techniques work in all versions of Excel, from 2007 through Excel 365.

After you've put a lot of effort in calculating a worksheet, you would usually want to add some finishing touches to make it look nice and presentable. Whether you are creating a repot for your head office or building a summary worksheet for the board of directors, proper formatting is what makes important data stand out and convey the relevant information more effectively.

Fortunately, Microsoft Excel has an amazingly simple way to copy formatting, which is often overlooked or underestimated. As you have probably guessed, I am talking about the Excel Format Painter that makes it really easy to take the formatting of one cell and apply it to another.

Further on in this tutorial, you will find the most efficient ways to use Format Painter in Excel, and learn a couple of other techniques to copy formatting in your sheets.

Excel Format Painter

When it comes to copying formatting in Excel, Format Painter is one of the most helpful and underused features. It works by copying the formatting of one cell and applying it to other cells.

With just a couple of clicks, it can help you reproduce most, if not all of the formatting settings, including:

  • Number format (General, Percentage, Currency, etc.)
  • Font face, size, and color
  • Font characteristics such as bold, italic, and underline
  • Fill color (cell background color)
  • Text alignment, direction and orientation
  • Cell borders

In all Excel versions, the Format Painter button is located on the Home tab, in the Clipboard group, right next to the Paste button:
Excel Format Painter button

How to use Format Painter in Excel

To copy cell formatting with the Excel Format Painter, just do the following:

  1. Select the cell with the formatting you want to copy.
  2. On the Home tab, in the Clipboard group, click the Format Painter button. The pointer will change to a paint brush.
  3. Move to the cell where you want to apply the formatting and click on it.

Done! The new formatting is copied to your target cell.
Using the Format Painter to copy formatting to a target cell

Excel Format Painter tips

If you need to change formatting of more than one cell, clicking each cell individually would be tedious and time consuming. The following tips will speed things up.

1. How to copy formatting to a range of cells.

To copy formatting to several adjacent cells, select the sample cell with the desired format, click the Format Painter button, and then drag the brush cursor across the cells that you want to format.
Using the Format Painter to copy formatting to a range of cells

2. How to copy format to non-adjacent cells.

To copy formatting to non-contiguous cells, double-click the Format Painter button instead of single-clicking it. This will "lock" the Excel Format Painter on, and the copied formatting will be applied to all cells and ranges that you click/select until you press Esc or click on the Format Painter button one final time.

3. How to copy the formatting of one column to another column row-by-row

To quickly copy the format of the entire column, select the heading of the column whose formatting you want to copy, click Format Painter, and then click the heading of the target column.

As demonstrated in the following screenshot, the new formatting is applied to the target column row-by-row, including the column width:
Apply the formatting of one column to another column row-by-row

In a similar manner, you can copy the format of the entire row, column-by-column. For this, click the sample row heading, click Format Painter, and then click the heading of the target row.

As you have just seen, the Format Painter makes copying format as easy as it can possibly be. However, as is often the case with Microsoft Excel, there is more than one way to do the same thing. Below, you will find two more methods to copy formats in Excel.

How to copy formatting down a column using the Fill Handle

We often use the fill handle to copy formulas or auto fill cells with data. But did you know that it can also copy Excel formats with just a few clicks? Here's how:

  1. Format the first cell the way you want.
  2. Select the properly formatted cell and hover over the fill handle (a small square at the lower right-hand corner). As you do this, the cursor will change from the white selection cross to a black cross.
  3. Hold and drag the handle over the cells where you want to apply the formatting:
    Copy formatting using the Fill Handle
    This will also copy the value of the first cell to other cells, but don't worry about that, we will undo it on the next step.
  4. Release the fill handle, click the Auto Fill Options drop-down menu, and select Fill Formatting Only:
    In the Auto Fill Options drop-down menu, and select Fill Formatting Only.

That's it! The cell values revert to the original values, and the desired format is applied to other cells in the column:
The desired format is applied to other cells in the column.

Tip. To copy the formatting down the column until the first empty cell, double-click the fill handle instead of dragging it, then click AutoFill Options, and select Fill Formatting Only.

How to copy cell formatting to an entire column or row

Excel Format Painter and Fill Handle work great with small selections. But how do you copy the format of a specific cell to an entire column or row so that the new format is applied to absolutely all cells in a column/row including blank cells? The solution is using the Formats option of Excel Paste Special.

  1. Select the cell with the desired format and press Ctrl+C to copy its content and formats.
  2. Select the entire column or row that you want to format by clicking on its heading.
  3. Right-click the selection, and then click Paste Special.
  4. In the Paste Special dialog box, click Formats, and then click OK.
    In the Paste Special dialog box, click Formats, and then click OK.

Alternatively, select the Formatting option from the Paste Special pop-up menu. This will display a live preview of the new format, as shown in the screenshot below:
Select the Formatting option from the Paste Special pop-up menu.

Shortcuts to copy formatting in Excel

Regrettably, Microsoft Excel doesn't provide a single shortcut that you could use to copy cell formats. However, this can be done by using a sequence of shortcuts. So, if you prefer working form the keyboard most of the time, you can copy format in Excel in one of the following ways.

Excel Format Painter shortcut

Instead of clicking the Format Painter button on the ribbon, do the following:

  1. Select the cell containing the required format.
  2. Press Alt, H, F, P keys.
  3. Click the target cell where you want to apply the formatting.

Please note, the shortcut keys for Format Painter in Excel should be pressed one by one, not all at once:

  • Alt activates the keyboard shortcuts for ribbon commands.
  • H selects the Home tab on the ribbon.
  • F, P select the Format Painter button.

Paste Special formatting shortcut

Another quick way to copy format in Excel is by using the keyboard shortcut for Paste Special > Formats:

  1. Select the cell from which you want to copy the format.
  2. Press Ctrl + C to copy the selected cell to the Clipboard.
  3. Select the cell(s) to which the format should be applied.
  4. Press Shift + F10, R and then click Enter.

This key sequence does the following:

  • Shift + F10 displays the context menu.
  • Shift + R chooses to paste only formatting.

These are the fastest ways to copy formatting in Excel. If you've accidentally copied a wrong format, no problem, our next article will teach you how to clear it :) I thank you for reading and hope to see you on our blog soon!

31 comments

  1. My modification to copy Width (Columns) and Height (Rows) Selected Ranges

    Public Sub copyWidthHeightSelectedRanges()
    Dim sourceRange As Range
    Dim DestinyRange As Range
    Dim xColumn As Double
    Dim yRow As Double

    On Error Resume Next
    Set sourceRange = Application.InputBox("Select a range:", "Source selection cells", Application.Selection.Address, Type:=8)
    On Error GoTo 0
    On Error Resume Next
    Set DestinyRange = Application.InputBox("Select a range (Top Left a Cell):", "Destiny selection cells", Application.Selection.Address, Type:=8)
    On Error GoTo 0

    If Not (sourceRange Is Nothing) Then
    If Not (DestinyRange Is Nothing) Then
    Application.StatusBar = "" 'only for visualizing progress SET START
    Call defreeze(False) 'Application.ScreenUpdating = False
    On Error Resume Next
    For xColumn = 1 To sourceRange.Columns.Count
    Sheets(DestinyRange.Worksheet.Name).Cells(1, DestinyRange.Column + xColumn - 1).ColumnWidth = Sheets(sourceRange.Worksheet.Name).Cells(1, sourceRange.Column + xColumn - 1).ColumnWidth
    Call showStatusBar(xColumn, sourceRange.Columns.Count, " Process Running 1/2: ") 'only for visualizing progress
    Next xColumn
    On Error GoTo 0
    On Error Resume Next
    For yRow = 1 To sourceRange.Rows.Count
    Sheets(DestinyRange.Worksheet.Name).Cells(DestinyRange.Row + yRow - 1, 1).RowHeight = Sheets(sourceRange.Worksheet.Name).Cells(sourceRange.Row + yRow - 1, 1).RowHeight
    Call showStatusBar(yRow, sourceRange.Rows.Count, " Process Running 2/2: ") 'only for visualizing progress
    Next yRow
    On Error GoTo 0
    Application.StatusBar = "" 'only for visualizing progress RESET END
    Call defreeze 'Application.ScreenUpdating = True
    End If
    End If
    End Sub

    'to fast work
    Sub defreeze(Optional status As Boolean = True) 'disabled by default, True
    With Application
    If status Then
    .ScreenUpdating = True
    .EnableEvents = True
    Else
    .ScreenUpdating = False
    .EnableEvents = False
    End If
    End With
    End Sub

    'progressbar, only for visualizing progress
    Sub showStatusBar(current As Double, total As Double, topic As String)
    'Application.StatusBar = "" 'SET START
    'Call showStatusBar(current, total, " Process Running: ")
    'Application.StatusBar = "" 'RESET END
    Static pctDone As Long
    Dim numberOfBars As Long
    Dim tmpPctDone As Long
    Dim currentStatus As Long
    Dim fast As Boolean

    numberOfBars = 50
    'Application.StatusBar = "[" & Space(NumberOfBars) & "]"

    ' Display and update Status Bar
    currentStatus = Int((current / total) * numberOfBars)
    If currentStatus > numberOfBars Then currentStatus = numberOfBars
    tmpPctDone = Round(currentStatus / numberOfBars * 100, 0)
    With Application
    If pctDone tmpPctDone Then
    pctDone = tmpPctDone
    If .ScreenUpdating = False Then
    fast = True
    .ScreenUpdating = True
    Else
    fast = False
    End If
    .StatusBar = topic & " [" & String(currentStatus, "|") & _
    Space(numberOfBars - currentStatus) & "]" & _
    " " & pctDone & "% Complete"
    If fast = True Then .ScreenUpdating = False
    Else
    If pctDone = 0 And .StatusBar = "" Then .StatusBar = topic & " [" & String(currentStatus, "|") & _
    Space(numberOfBars - currentStatus) & "]" & _
    " " & pctDone & "% Complete"
    End If
    End With
    ' Clear the Status Bar when you're done
    ' If Current = Total Then Application.StatusBar = ""
    End Sub

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)