我正在尝试修复一些很久以前由我的同事写的代码中的错误。我们俩都很难过,因为直到最近一切都运转良好:
Sub paste3()
Dim oSh As Shape
n = 4
DoEvents
Take2:
On Error GoTo Take2:
Set oSh = ActivePresentation.Slides(n).Shapes.PasteSpecial(ppPasteDefault)(1)
' .PasteSpecial returns a ShapeRange; the (1) at the end of the line above
' returns the first shape in the range. W/o that, you get a type mismatch error
' from trying to assign a range to a shape
With oSh
' Set position:
.Left = 41
.Top = 57
' Set size:
.Height = 100
.Width = 700
.TextFrame.TextRange.Font.Size = 11
End With
代码在“.TextFrame”行失败,并给出错误“运行时错误'-2147024809(80070057)':指定的值超出范围”。
我不明白为什么会这样做。进入宏时,您会看到从excel复制的单元格,然后作为文本框(oSh)粘贴到Powerpoint中。
我已经尝试过将大小从11改为10,12等等,以防万一这是一个疯狂的错误,但没有快乐。
我真的不明白为什么在我们使用这个宏超过一年没有任何问题之前从未抛出错误。