.Textframe VBA Microsoft PowerPoint问题

.Textframe VBA Microsoft PowerPoint问题,vba,excel,textbox,shape,powerpoint,Vba,Excel,Textbox,Shape,Powerpoint,我正试图修复我的一位同事很久以前编写的一些代码中的一个bug。我们两人都被难住了,因为直到最近一切都很顺利: 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;

我正试图修复我的一位同事很久以前编写的一些代码中的一个bug。我们两人都被难住了,因为直到最近一切都很顺利:

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号等等,以防万一这是个疯狂的错误,但没有乐趣

以下是“本地人”框在编辑器中的内容:


我真的不明白为什么这以前从未抛出错误,因为我们已经使用这个宏一年多了,没有任何问题。

我注意到您的屏幕截图中HasText=False。这表明出于某种原因,文本框架中没有文本;这就解释了为什么PPT在叫喊。无法设置不存在的文本的大小。您是否已通过代码查看错误发生点之前发生的情况?是否确定引用的形状支持文本。这个局部快照看起来像图片形状,或者任何不支持文本框的东西。@SteveRindsberg我也看到了。这毫无意义,因为我已经看完了代码,它肯定是从Excel复制了一个单元格,并将其粘贴为Powerpoint中的文本框。我可以停止调试过程,移动文本框并编辑其中的文本。发现HasText=False相当奇怪。@ShyamPillai我尝试定义一个变量并将其设置为粘贴的单元格,但仍然是相同的问题。我不知道将Excel中的单元格复制到PowerPoint中的文本框是否有问题。@JamesBaker-Aha。当我将单元格从Excel粘贴到PPT时,得到的是表格对象,而不是文本框。桌子没有文本框。我会尝试以编程方式在PPT中添加文本框,然后将其TextFrame.TextRange.text属性设置为您感兴趣的Excel单元格的值。