如何在复制PPT时添加数据库值

时间:2016-08-01 02:53:11

标签: vba powerpoint

尝试复制幻灯片1 - 4,它将数据从我的数据库中拉入形状1和2

但我收到一个错误:对象'Shapes'的'Item'方法失败

Power point vba编码新手。我真的不明白为什么我会收到这个错误。

如果我只复制幻灯片1而没有数组它工作正常,但我需要在幻灯片1 - 4的副本中复制它。有没有办法做到这一点?或者我必须找到另一种方法来做到这一点

当前代码:

 Do Until rs.EOF
     Dim myPres As Presentation
Dim mySlide As SlideRange
Set myPres = ActivePresentation
Dim sldRng As PowerPoint.SlideRange
Set sldRng = ActivePresentation.Slides.Range(Array(1, 2, 3, 4)).Duplicate
sldRng.Shapes(1).TextFrame.TextRange = rs.Fields("SeqNo").Value
sldRng.Shapes(2).TextFrame.TextRange = rs.Fields("SeqData").Value

1 个答案:

答案 0 :(得分:1)

这是抛出错误的行,不是吗?

  
    

sldRng.Shapes(1).TextFrame.TextRange = rs.Fields(" SeqNo")。值

  

幻灯片范围包含幻灯片;幻灯片本身包含形状,因此您需要从幻灯片范围引用单个幻灯片,然后仅在该幻灯片上引用形状集合:

sldRng(1).Shapes(1).TextFrame.TextRange = rs.Fields("SeqNo").Value

或更有可能:

Dim x as Long
For x = 1 to sldRng.Count
   sldRng(x).Shapes(1).TextFrame.TextRange = rs.Fields("SeqNo").Value
Next