Требуется объект Ошибка после обновления до Office 2013

143
9

У меня есть следующий подраздел, который копирует диаграмму, переданную в слайд PowerPoint. Он использовался для создания колоды PowerPoint из диаграмм и данных в электронной таблице Excel. Этот код работал отлично в Excel 2010. Я только что был обновлен до Office 2013, и теперь у меня появляется ошибка "Object Required" на sr.LockAspectRatio = msoFalse.

Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)

Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr.LockAspectRatio = msoFalse

sr.Top = Top
sr.Left = Left
sr.Height = Height
sr.Width = Width

End Sub

спросил(а) 2015-06-25T18:30:00+03:00 6 лет, 3 месяца назад
1
Решение
66

По-видимому, метод Past должен возвращать массив ShapeRanges. Я не уверен, что так было, и Office 2010 был немного более прощающим или нет. Итак, чтобы исправить эту проблему, при ссылке на sr мне пришлось делать как sr(sr.Count). Рабочий код ниже...

Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)

Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr(sr.Count).LockAspectRatio = msoFalse

sr(sr.Count).Top = Top
sr(sr.Count).Left = Left
sr(sr.Count).Height = Height
sr(sr.Count).Width = Width

End Sub

ответил(а) 2015-06-26T14:21:00+03:00 6 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема