does this work any better?
Sub export_figures()
Dim folder_name As String
Dim wsRpt As Worksheet
Dim wsCharts As Worksheet
Dim oShp As Shape
Dim ch As Chart
Dim vNames
Dim vRanges
Dim n As Long
vRanges = Array("A1:O45", "A50:P104", "A106:P165")
vNames = Array("Production", "Injection", "Deferred")
Set wsRpt = ThisWorkbook.Sheets("MONTHLY REPORT + TCM TEMPLATE")
folder_name = wsRpt.Range("S25").Value
Set wsCharts = Worksheets.Add
Set oShp = wsCharts.Shapes.AddChart(xlColumn, 0, 0, 10, 10)
Set ch = oShp.Chart
Application.ScreenUpdating = True
For n = LBound(vRanges) To UBound(vRanges)
With wsRpt.Range(vRanges(n))
oShp.Height = .Height
oShp.Width = .Width
.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
End With
With ch
.Paste
.Export Filename:=folder_name & "\" & vNames(n) & ".png", FilterName:="PNG"
.ChartArea.ClearContents
End With
Next n
Application.DisplayAlerts = False
wsCharts.Delete
Application.DisplayAlerts = True
End Sub
Bookmarks