VBA .shapes.pastespecial терпит неудачу периодически - PullRequest
0 голосов
/ 29 октября 2019

Я получаю периодический сбой с .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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...