Я создал макрос Excel, который обрабатывает некоторые данные в Excel (два значения на итерацию), вводит эти данные в диапазон (две ячейки на итерацию) и копирует / вставляет этот диапазон как изображение (фигуру) в заданную PowerPoint. Слайд с заданным верхним / левым значением.
Макрос работает так, как задумано, но с увеличением числа вставленных фигур возрастают и шансы пропустить случайные фигуры (без сообщений об ошибках). Я пробовал код несколько раз и никогда не получал один и тот же результат: иногда отсутствуют две или три фигуры, иногда восемь, а иногда нет ...
Я использую DoEvents после каждой вставки и (на всякий случай, если это помогает) функцию Sleep, определяемую как: "Public Declare Sub Sleep Lib" kernel32 "(ByVal dwMilliseconds As Long)"
Есть ли способ объединить все вставленные изображения в одно большое изображение на слайде из Excel? У кого-нибудь есть другие предложения?
Следующий код был взят из макроса, и для простоты я опустил остальные. Этот код находится внутри двух вложенных циклов For.
'Variable calculations
LastRow = .Cells(.rows.Count, .Range("statusCol").Column).End(xlUp).Row
LastCol = .Cells(61, .Columns.Count).End(xlToLeft).Column
Set rng = .Range(.Cells(61, .Range("statusCol").Column), .Cells(LastRow, LastCol))
rng.Copy
If ExcelApp.ClipboardFormats(1) Then ' Check clipboard contents
mySlide.Shapes.PasteSpecial DataType:=2
DoEvents
' Changing the pasted cell's position and size
Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
With myShape
.LockAspectRatio = msoTrue
.Left = TableLeft
.Top = TableTop
.Height = 20 * rng.rows.Count
End With
End If