How to copy one chart format to others in Excel?

Supposing there are multiple different types of charts in your worksheet, you have formatted one chart to your need, and now you want to apply this chart formatting to other charts. Of course, you can format others manually one by one, but this will waste much time, are there any quick or handy ways for you to copy one chart format to others in Excel?

Copy one chart format to other charts with Paste Special function

Copy one chart format to other charts with creating a template

Copy one chart format to other chart with VBA code

Office Tab Enable Tabbed Editing and Browsing in Office, and Make Your Work Much Easier...
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
  • Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
  • More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
  • Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
  • Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
  • Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
  • Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
  • More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.

arrow blue right bubble Copy one chart format to other charts with Paste Special function

Please look at the following screenshot, the first chart has the formatting which you need, and now, you want to apply its formatting to other charts.


This Paste Special function can help you to copy one chart format to other charts with following steps:

1. Select the chart that you want to copy its format to others.

2. Then on the Home tab, click Copy, see screenshot:


3. And then select another chart that you want to reformat, then click Home > Paste > Paste Special, and in the popped out dialog, check Formats under Paste option. See screenshots:

doc-copy-chart-format3 -2 doc-copy-chart-format4

4. Then click OK, and the chart formatting has been applied to this chart, and then repeat this procedure for each chart you want to reformat. At last you will get the following results:


arrow blue right bubble Copy one chart format to other charts with creating a template

You can also save your formatted chart as a chart template, and then change other charts type to your template chart type.

1. Select your needed formatting chart, on the Design tab, click Save As Template, see screenshot:


2. In the Save Chart Template window, specify a name for your template chart, and then click Save. And it will be saved with the rest of the chart types, in a Templates folder, it can be chosen when you create a new chart.


3. After creating your template chart, then you can change other chart types to this template, select the chart which needed to be reformatting and right click, choose Change Chart Type from the context menu, see screenshot:


4. In the Change Chart Type dialog, click Templates from the left pane, and select your created chart template under My Templates option.


5. Then click OK to close this dialog, and the chart's formatting has been copied to this selected chart. See screenshot:


6. Then repeat the above step 3- step5 to copy the format to other charts one by one.

arrow blue right bubble Copy one chart format to other chart with VBA code

With above two methods, you must paste or change the chart's formatting one by one, if there are multiple charts need to be reformatted, the following VBA code can help you apply one chart format to others at once in the current worksheet.

1. Select the chart that you want to apply its format to other charts.

2. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications Window.

3. Click Insert > Module, and paste the following macro in the Module Window:

VBA code: Copy one chart format to other chart at once

Sub CopyChartFormats()
Dim Ws As Worksheet
Dim Cht As ChartObject
Dim xChart As Chart
Dim bTitle As Boolean
Dim bXTitle As Boolean
Dim bYTitle As Boolean
Dim sTitle As String
Dim sXTitle As String
Dim sYTitle As String
Dim iSource As Long
Dim iTarget As Long
Dim iTotal As Long
Dim iSeries As Long
Dim vSource As Variant
Dim vTarget As Variant
Application.ScreenUpdating = False
Set xChart = Application.ActiveChart
iSource = xChart.SeriesCollection.Count
Set Ws = Application.ActiveSheet
  For Each Cht In Ws.ChartObjects
    If Ws.Name = xChart.Parent.Parent.Name And _
        Cht.Name = xChart.Parent.Name Then
      With Cht.Chart
       iTarget = .SeriesCollection.Count
        bTitle = .HasTitle
        If bTitle Then
          sTitle = .ChartTitle.Characters.Text
        End If
        If .HasAxis(xlCategory) Then
          bXTitle = .Axes(xlCategory).HasTitle
          If bXTitle Then
            sXTitle = .Axes(xlCategory).AxisTitle.Characters.Text
          End If
        End If
        If .HasAxis(xlValue) Then
          bYTitle = .Axes(xlValue).HasTitle
          If bYTitle Then
            sYTitle = .Axes(xlValue).AxisTitle.Characters.Text
          End If
        End If
        .Paste Type:=xlFormats
        iTotal = .SeriesCollection.Count
        If iTotal = iSource + iTarget Then
          For iSeries = 1 To iTarget
            vSource = Split(.SeriesCollection(iSeries).Formula, ",")
            vTarget = Split(.SeriesCollection(iSeries + iSource).Formula, ",")
            vTarget(UBound(vTarget)) = vSource(UBound(vSource))
            .SeriesCollection(iSeries).Formula = Join(vTarget, ",")
          For iSeries = iTotal To iTarget + 1 Step -1
        End If
        If bXTitle Then
          .Axes(xlCategory).HasTitle = True
          .Axes(xlCategory).AxisTitle.Characters.Text = sXTitle
        End If
        If bYTitle Then
          .Axes(xlValue).HasTitle = True
          .Axes(xlValue).AxisTitle.Characters.Text = sYTitle
        End If
                If bTitle Then
          .HasTitle = True
          .ChartTitle.Characters.Text = sTitle
        End If
      End With
    End If
Application.ScreenUpdating = True
End Sub

4. Then press F5 key to run this code, and all other charts in current worksheet are applied with the formatting of the selected chart immediately.

Related articles:

How to add image as background into chart in Excel?

How to add arrows to line/column chart in Excel?

The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Alban · 8 months ago
    Thanks for your help, great job !
  • To post as a guest, your comment is unpublished.
    ruta · 3 years ago
    Hello, Thank you for the code!
    However this line 20 makes a bug for me: iSource = xChart.SeriesCollection.Count
    I would appreciate your help!

    Thank you,
  • To post as a guest, your comment is unpublished.
    Melissa · 4 years ago
    hello. this works for me, to a degree. the format applies to my new chart just fine, but i also get the data from the first chart, that overrides my new chart data. more clearly, i have done chart 1 and love it! i also have chart 2, and don't love it. i want chart 2 to be formatted like chart 1. i click and copy chart 1. i click on chart 2, click paste>paste special>formats. now chart 2 has the appropriate format, but also has the data from chart 1. some chart 2 data remains, some has been replaced by chart 1 data. how do i only get format, not data?

    thank you!!