Hi,

firstly, I have to write the macro from word and I know that makes a difference because the code seems to work in excel, so that's got me puzzled.

Now, the problem I have is that when I run the macro, which copies several charts from an excel worksheet and pastes it into word, each subsequent chart just overwrites the previous one rather than move the cursor down a row and paste in the new chart.

The code is provided below:

Sub WorkOnAWorkbook()

Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim ExcelWasNotRunning As Boolean
Dim ExcelWorkbook(1 To 2) As String
Dim ChartsSheet(1 To 2) As String
Dim iCht As Integer
Dim Path As String

Path = Application.ActiveDocument.Path

'specify the workbook to work on
ExcelWorkbook(1) = Path & "\GMFM Tables - Canada.xls"
ExcelWorkbook(2) = Path & "\GMFM Tables - US.xls"

'worksheets that contain charts to be copied into document
ChartsSheet(1) = "Trends"
ChartsSheet(2) = "ChartsD-G"

'If Excel is running, get a handle on it; otherwise start a new instance of Excel
On Error Resume Next
Set oXL = GetObject(, "Excel.Application")

If Err Then
ExcelWasNotRunning = True
Set oXL = New Excel.Application
End If

'Do not display warnings from the excel sheets
oXL.DisplayAlerts = False

For i = 1 To UBound(ExcelWorkbook)
'If you want Excel to be visible, you could add the line: oXL.Visible = True here; but your code will run faster if you don't make it visible
'oXL.Visible = True

'Open the workbook
Set oWB = oXL.Workbooks.Open(FileName:=ExcelWorkbook(i))

For j = 1 To UBound(ChartsSheet)

Sheets(ChartsSheet(j)).Select

For iCht = 1 To ActiveSheet.ChartObjects.Count
' copy chart as a picture
ActiveSheet.ChartObjects(iCht).Chart.CopyPicture _
Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture

ActiveDocument.Content.Collapse Direction:=WdCollapseDirection.wdCollapseEnd
'Selection.EndKey Unit:=wdLine, Extend:=wdMove
ActiveDocument.Range.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture, _
Placement:=wdInLine, DisplayAsIcon:=False
Selection.MoveEnd Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1
Next
Next

'Exit Excel document without saving
oWB.Close False
Next

oXL.Quit

'Make sure you release object references.
Set oWB = Nothing
Set oXL = Nothing

'quit
Exit Sub

End Sub