-2

I do have an Excel file with multiple tabs in it. Each tab is tagged with a different referenced number and i would like to copy a chart contained in each WrkSht and paste it in different Word files, saving each word File with the tab name. Thanks!

    Sub ExportchART()

Dim Wrdapp As Word.Application
Dim Wrddoc As Word.document
Dim Chrobj As ChartObject
Dim WrkSht As Worksheet

Set Wrdapp = New Word.Application
Wrdapp.Visible = True
Wrdapp.Activate

Set Wrddoc = Wrdapp.Documents.Add
    For Each WrkSht In ThisWorkbook.Worksheets
    WrkSht.Activate
        For Each Chrobj In WrkSht.ChartObjects
            Chrobj.Chart.ChartArea.Copy
            With Wrdapp.Selection
                .PasteSpecial Link:=True, DataType:=wdPasteOLEobject
            End With
    
        Wrdapp.ActiveDocument.Sections.Add
        
        Wrdapp.Selection.Goto What:=wdGotoPage, Which:=wdgotonext
        Application.CutCopyMode = False
    
    Next Chrobj
Next WrkSht

End Sub
braX
  • 11,506
  • 5
  • 20
  • 33
FGp
  • 1
  • 1

1 Answers1

0

For example:

Sub ExportCharts()
Dim WrdApp As New Word.Application, WrdDoc As Word.Document
Dim Chrobj As ChartObject, WrkSht As Worksheet
WrdApp.Visible = True
For Each WrkSht In ThisWorkbook.Worksheets
  Set WrdDoc = WrdApp.Documents.Add
  For Each Chrobj In WrkSht.ChartObjects
    Chrobj.Chart.ChartArea.Copy
    WrdDoc.Characters.Last.PasteSpecial Link:=True, DataType:=wdPasteOLEObject
  Next Chrobj
  WrdDoc.SaveAs2 FileName:=ThisWorkbook.Path & "\" & WrkSht.Name & ".docx", _
    FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
  WrdDoc.Close False
Next WrkSht
WrdApp.Quit
End Sub
macropod
  • 12,757
  • 2
  • 9
  • 21