Копирование функции VBA случайно - PullRequest
0 голосов
/ 30 января 2020

Я написал функцию, которая копирует графики из книги Excel в готовый PowerPoint. Графики определяются по имени в пп и в рабочей книге. По какой-то причине я получаю ошибку 1004 при попытке скопировать диаграмму из Excel. Это не всегда происходит при первом вызове функции, но, по-видимому, в случайное время. Я что-то упустил?

Public Sub PlaceChart(pres, name, slide)
    Set PPTSlide = pres.Slides(slide)
    Set CurShape = PPTSlide.Shapes(name)
        h = CurShape.height
        w = CurShape.width
        t = CurShape.top
        l = CurShape.left
        CurShape.Delete
    Set CurChart = Worksheets(1).ChartObjects(name)
        Application.CutCopyMode = False
        CurChart.Copy
        PPTSlide.Shapes.Paste
    Set CurShape = PPTSlide.Shapes(name)
        CurShape.height = h
        CurShape.width = w
        CurShape.top = t
        CurShape.left = l
End Sub

Функция находит форму в powerpoint, копирует ее размеры и затем удаляет ее. Затем он использует эти размеры для изменения размера нового графика после его вставки.

Заранее спасибо.

1 Ответ

0 голосов
/ 30 января 2020

Я изменил саб для следующего

Public Sub PlaceChart(pres, name, slide)
    Set PPTSlide = pres.Slides(slide)
    Set CurShape = PPTSlide.Shapes(name)
        h = CurShape.height
        w = CurShape.width
        t = CurShape.top
        l = CurShape.left
        CurShape.Delete
    ThisWorkbook.Worksheets(1).ChartObjects(name).Select
    ThisWorkbook.Worksheets(1).ChartObjects(name).Copy
    PPTSlide.Shapes.Paste
    Set CurShape = PPTSlide.Shapes(name)
        CurShape.height = h
        CurShape.width = w
        CurShape.top = t
        CurShape.left = l
End Sub

И, похоже, теперь он работает стабильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...