VBA-excel graphic in the form of a picture

I am creating various charts from the same source. I would like to be able to cut a paste with vba for each chart as an image. Does anyone know the correct code?

I tried with this, but it does not work:

Range("B21:C22").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Graphs'!$B$21:$C$22") ActiveChart.ChartType = xl3DPie ActiveChart.ChartArea.Select ActiveChart.ChartArea.Copy ActiveSheet.Pictures.Paste.Select 
+4
source share
3 answers

I always find that copying charts is confusing, but it does what you want, I think, and does not use Selects , which is always nice.

 Sub CreateAndCopyChart() Dim ws As Worksheet Dim cht As Chart Set ws = ThisWorkbook.Worksheets("Graphs") Set cht = ws.Shapes.AddChart.Chart With cht .SetSourceData ws.Range("$B$21:$C$22") .ChartType = xl3DPie .ChartArea.Copy End With ws.Range("A2").PasteSpecial xlPasteValues cht.Parent.Delete End Sub 
+10
source
 Range("A1:A8").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$A$8") ActiveChart.ChartType = xlLine ActiveChart.PlotArea.Select ActiveChart.ChartArea.Copy Range("A20").Select ActiveSheet.Paste 
+1
source

A bit slow, but allows you to convert graphics to images. I use this to create reports (in the previous step I copied the diagrams from another tab where the original diagrams are created)

 ActiveSheet.ChartObjects.Select Selection.Copy 'copy charts Range("A1").Select 'choose destination ActiveSheet.Pictures.Paste.Select 'paste as pictures ActiveSheet.ChartObjects.Delete 'delete charts (leaving just pictures) 
0
source

Source: https://habr.com/ru/post/1445276/


All Articles