У меня есть код VBA, который успешно копирует диапазон из Excel в слайд-два новой презентации на основе шаблона (VBA открывает Powerpoint).Вставить таблицу Excel в Powerpoint, просто вставив диапазон в использовании VBA
Макрос заканчивается путем вставки диаграммы в слайд-двое из листа в Excel. Теперь я хочу вернуться на этот рабочий лист, скопировать диаграмму, которая уже была построена из этих данных, и вставить ее в тот же слайд, который только что вставляли данные.
Мой код
'Plots Chart Based on Tabular Data
Range("A1:B1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.ApplyChartTemplate (_
"C:\Users\Colin\AppData\Roaming\Microsoft\Templates\Charts\Edge45 Bar Chart Transparent Horizontal Bars.crtx")
ActiveChart.SetSourceData Source:=Range("'Screaming Frog Summary'!$A$1:$B$16")
ActiveSheet.Shapes("Chart 1").IncrementLeft -57.6
ActiveSheet.Shapes("Chart 1").IncrementTop 243.9
'Opens a new PowerPoint presentation based on template and pastes data into Slide 2 of Powerpoint from Excel
Dim PPApp As PowerPoint.Application, PPPres As PowerPoint.Presentation, PPSlide As PowerPoint.Slide, PPShape As Object
Dim XLws As Worksheet
Set XLws = ActiveSheet
Set PPApp = New PowerPoint.Application
Set PPPres = PPApp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm", Untitled:=msoTrue)
PPApp.Visible = True
Set PPSlide = PPPres.Slides(2)
XLws.Range("A1:D16").Copy
Set PPShape = PPSlide.Shapes.PasteSpecial(DataType:=ppPasteHTML, Link:=msoFalse)
Application.CutCopyMode = False
With PPShape
.Top = 10
.Height = 100
.Left = 10
.Width = 100
End With
Вы можете просто добавить таблицу данных на графике (нажмите на график, перейдите в главное меню, добавить элемент, таблицы данных, выберите);) – R3uK
Спасибо - Но это не решает проблему у меня есть - Мне нужно специально вставить диаграмму отдельно от данных. – Superhans
@Superhans вы используете Excel 2013? –