Я получаю периодический сбой с .Shapes.PasteSpecial. Это работает в большинстве случаев, но, поскольку я часто его использую, полный отчет терпит неудачу.
Я делаю отчет в Powerpoint с данными из Excel. В Excel я организовал данные в ячейках так, как они должны быть представлены в ppt и используя слайсеры, чтобы выбрать, какие данные должны быть представлены. Моя проблема в том, что при запуске подпрограммы для создания отчета иногда происходит сбой. Для каждого отчета приведенная ниже процедура вызывается ~ 50 раз, а ошибка возникает ~ при каждой третьей попытке отчета, но не для одной и той же области отчета.
Сообщение об ошибке: ошибка времени выполнения '-2147188160 (80048240)': фигуры (неизвестный элемент): неверный запрос. Указанный тип данных недоступен.
и указывает на .Shapes.PasteSpecial DataType:=2
Это проблема синхронизации с VBA или что-то еще?
Я пробовал другие способы сделать пасту, но это не работает для меня (копирование ячеек и вставка в ppt как изображение).
Public Function CopyRngAndPasteToPowerpoint(rng As Range, activeSlide As PowerPoint.Slide, stepInLadder As Integer) As Integer
'Copy Excel Range
rng.Copy
'calculate position based on step in ladder
Dim leftPosition, topPosition, offsetX, offsetY As Integer
offsetX = 35
offsetY = 60
leftPosition = 75 + (offsetX * stepInLadder)
topPosition = 350 - (offsetY * stepInLadder)
'Paste to PowerPoint and position
With activeSlide
.Shapes.PasteSpecial DataType:=2
With .Shapes(.Shapes.Count)
.LockAspectRatio = msoTrue
.Left = leftPosition
.Top = topPosition
.ScaleHeight 0.28, msoFalse
End With
End With
CopyRngAndPasteToPowerpoint = 1
End Function