Как решить "Ошибка во время выполнения" -2147188160 (80048240) ': формы (неизвестный элемент): неверный запрос. Указанный тип данных я недоступен " - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь автоматизировать отчет из Excel в Powerpoint.Я получаю то же сообщение об ошибке.Иногда сценарий работает, а некоторые нет.Я читал что-то о «Панелях» в другой ветке, но я не понимал, что делать с информацией.Строка, вызывающая ошибку:


activeSlide.Shapes.PasteSpecial (DataType: = ppPasteBitmap) .Select


Я не очень знакомс программированием, поэтому, пожалуйста, примите это во внимание.Спасибо!

Сейчас я просто продолжаю экспорт и компенсирую ручную работу за неработающие слайды.

    'SLIDE HISTORICALS Germany _____________________________________________________________
    'Add a new slide where we will paste the chart
        newPowerPoint.ActivePresentation.Slides.Add newPowerPoint.ActivePresentation.Slides.Count + 1, ppLayoutText
        newPowerPoint.ActiveWindow.View.GotoSlide newPowerPoint.ActivePresentation.Slides.Count
        Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)

            Sheets("Historicals Output").Activate

    'Copy the chart and paste it into the PowerPoint as a Metafile Picture
        ActiveWorkbook.Worksheets("Historicals Output").Range("A86:S118").Select
        Selection.Copy

'' 'activeSlide.Shapes.PasteSpecial (DataType: = ppPasteBitmap) .Выберите '' '

    'Set the title of the slide the same as the title of the chart
       ' activeSlide.Shapes(1).TextFrame.TextRange.Text = cht.Chart.ChartTitle.Text

    'Adjust the positioning of the Chart on Powerpoint Slide
       ' newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 15
       newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 70

        ' create textbox
        Sheets("Text").Activate
        ActiveWorkbook.Worksheets("Text").Range("b12:z12").Select
        Selection.Copy''' activeSlide.Shapes.PasteSpecial(DataType:=ppPasteBitmap).Select '''
        newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 0
        newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 0

Я был бы очень благодарен, чтобы этот прогон прошел гладко.

1 Ответ

0 голосов
/ 03 апреля 2019

Посмотрите, так ли это.

PowerPoint обычно требуется некоторое время после вставки чего-либо на слайд.

Особенно OLE-объект, такой как таблица Excel, занимает некоторое время.

Попробуйте добавить следующий фрагмент кода.

...
Selection.Copy
activeSlide.Shapes.PasteSpecial(DataType:=ppPasteBitmap)

'Let's give some break time
Do
    DoEvents
Loop Until activeSlide.Shapes.Count > 0  ' use '0' if pasted on a new slide

'Select the last shape pasted
activeSlide.Shapes(activeSlide.Shapes.Count).Select
...
...