Сбои Powerpoint во время автоматизации VBA - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть макрос Excel, который берет существующий шаблон Powerpoint с объектами диаграммы и редактирует данные для каждой диаграммы с помощью данных из листа Excel. Коды перебирают по n строкам в листе, чтобы создать серию из 4 слайдов для каждой строки Excel.

Как ни странно, для некоторых строк один или несколько слайдов в наборе выдают ошибку «Excel прекратил работать», но данные, похоже, установлены правильно. Тем не менее, проблема заключается в случайной и несколько случайной ошибке «Powerpoint прекратил работать». Ошибка PowerPoint полностью вылетает из PowerPoint. И то и другое происходит, когда я добираюсь до отметки 50 слайдов или около того.

Вот код для 4-го в наборе в качестве примера. Остальные в значительной степени идентичны:

oPPT.ActiveWindow.View.GotoSlide Index:=5 + (4 * dIndex)

' SET OBJECT & CHART REFERENCES
Set shapeObject = oPPT.ActivePresentation.Slides(5 + (4 * dIndex)).Shapes("Chart 4")
Set myChart = shapeObject.Chart
Set gChartData = myChart.ChartData
Set gWorkbook = gChartData.Workbook
Set gWorksheet = gWorkbook.Worksheets(1)

' SET VALUES 
gWorksheet.Range("B2").Value = myWs.Range("Y" & dRow).Value
gWorksheet.Range("B3").Value = myWs.Range("AA" & dRow).Value
gWorksheet.Range("B4").Value = myWs.Range("Z" & dRow).Value
gWorksheet.Range("B5").Value = myWs.Range("X" & dRow).Value

Set shapeObject = Nothing
Set myChart = Nothing
Set gChartData = Nothing
Set gWorksheet = Nothing
gWorkbook.Close
Set gWorkbook = Nothing

Ошибки абсолютно случайны и возникают каждый раз на разных итерациях. Я обнаружил, что 1-й раз, когда я запускаю никогда не производит PPT перестала работать ошибка. Последующие могут.

Есть идеи? Я сбит с толку тем, что здесь происходит.

Обратите внимание, что я повторяю набор шаблонов на столько наборов, сколько мне нужно, прежде чем перебирать книгу Excel. Например, если на листе Excel 10 строк, я дублирую 4 слайда шаблона 10 раз, прежде чем вносить какие-либо изменения в данные базового набора.

Возможно, есть проблема времени?

1 Ответ

0 голосов
/ 13 ноября 2018

Одна вещь, которая, по-видимому, отсутствует - это вызов активации перед доступом к встроенной рабочей таблице:

gChartData.Activate

Это может объяснить проблемы сбоев. ср https://msdn.microsoft.com/de-de/vba/powerpoint-vba/articles/chartdata-activate-method-powerpoint

Приветствие Jens

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