Мне нужно вставить большой диапазон данных из Excel (скажем, A1: B2000) в презентацию PowerPoint, где на каждом слайде есть таблица с 40 строками данных из Excel.Я изо всех сил пытаюсь наконец вставить диапазон в таблицу в PowerPoint.
Более подробно, я работал над двумя возможными решениями: A) вставка данных Excel в виде новой таблицы в слайд PowerPoint, а затем переформатироватьЭто;или B), как здесь предлагается, потому что я думаю, что это должно быть лучшее решение, вставив данные Excel в существующие таблицы в powerpoint.
У меня есть код для копирования диапазона и выбора ячейки в таблице вслайд PowerPoint, в который я хочу вставить диапазон ячеек Excel, но я не знаю, как сделать последний шаг, вставив данные Excel в таблицу PowerPoint.
Private Sub pptpaste2()
Dim r As Range
Dim powerpointapp As PowerPoint.Application
Dim mypresentation As Object
Dim myslide As Object
Dim myshape As Object
Dim pptLayout As CustomLayout
Dim ppTbl As Object
'code to insert excel rows into tables already existing in powerpoint presentation slides
Set r = ThisWorkbook.Worksheets("listdata").Range("B3:C11")
Set powerpointapp = GetObject(class:="PowerPoint.Application")
Set mypresentation = powerpointapp.Presentations("RoughVBApres.ppxt")
Set pptLayout = mypresentation.Slides(3).CustomLayout
Set myslide = mypresentation.Slides(3)
powerpointapp.Visible = True
powerpointapp.Activate
If powerpointapp Is Nothing Then
MsgBox "PowerPoint Presentation is not open, aborting."
Exit Sub
End If
'Handle if the PowerPoint Application is not found
If Err.Number = 429 Then
MsgBox "PowerPoint could not be found, aborting."
Exit Sub
End If
On Error GoTo 0
'copy range in excel that you want to paste into table on powerpoint
r.Copy
'Make the presentation the active presentation
mypresentation.Windows(1).Activate
Application.CutCopyMode = False
' find on Slide Number 3 which object ID is of Table type
With powerpointapp.ActivePresentation.Slides(3).Shapes
For i = 1 To .Count
If .Item(i).HasTable Then
ShapeNum = i
End If
Next
End With
' assign Slide Table object
Set ppTbl = powerpointapp.ActivePresentation.Slides(3).Shapes(ShapeNum)
' select the Table cell you want to copy to
ppTbl.Table.Cell(1, 1).Shape.Select
Мне кажется, я выполнил весь код до того, как наконец вставил данные в таблицу слайдов Powerpoint.Я пробовал
powerpointapp.CommandBars.ExecuteMso "PasteExcelTableSourceFormatting"
и варианты того, что предлагается в другом месте онлайн, но это, похоже, не работает.Я хотел бы получить совет относительно того, как в конце концов вставить скопированный диапазон в существующую таблицу в powerpoint, если это возможно.
Заранее спасибо.