如何将 Excel 中的数据粘贴到 PowerPoint 中
How to paste data from Excel into PowerPoint
我从 msdn.microsoft.com 网站看到了一些代码,但我在尝试测试它时遇到错误。这段代码实际上是他们的示例代码。代码如下:
Sub ReplaceText()
Dim oSld As Slide
Dim oShp As Shape
Dim oTxtRng As TextRange
Dim oTmpRng As TextRange
Set oSld = Application.ActivePresentation.Slides(1)
For Each oShp In oSld.Shapes
Set oTxtRng = oShp.TextFrame.TextRange
Set oTmpRng = oTxtRng.Replace(FindWhat:="Name Here", _
Replacewhat:="TESTTEST", WholeWords:=True)
Next oShp
End Sub
错误发生在Set oTxtRng = oShp.TextFrame.TextRange
行,错误为"the specified value is out of range"。任何人都知道为什么我会收到此错误,以及如何避免它?这是在 Powerpoint 的 VBA 编辑器中,我打开了 ppt 演示文稿
如果您已经打开了ppt,请不要创建而是获取对象。而不是:
Set oPPTApp = CreateObject("PowerPoint.Application")
你应该
Set oPPTApp = GetObject(, "PowerPoint.Application")
然后,不要打开演示文稿,而是使用已经打开并处于活动状态的演示文稿:
Set oPPTFile = oPPTApp.ActivePresentation
如果只有一张幻灯片,您可以使用以下代码访问其中的形状
Dim sh As PowerPoint.Shape
For Each sh In oPPTFile.Slides(1).Shapes
'do something with sh
Next sh
您要查找的 属性 可能是 sh.TextFrame.TextRange.Text,但请使用 Intellisense 进行实验。
有些形状没有文本框(lines/connectors/OLE 对象等),因此您想先进行测试。然后该形状可能有一个文本框但其中没有文本,因此您可以对其进行测试。然后你可以将文本范围分配给一个变量:
If oShp.HasTextFrame Then
If oShp.TextFrame.HasText Then
Set oTxtRng = oShp.TextFrame.TextRange
End If
End If
我从 msdn.microsoft.com 网站看到了一些代码,但我在尝试测试它时遇到错误。这段代码实际上是他们的示例代码。代码如下:
Sub ReplaceText()
Dim oSld As Slide
Dim oShp As Shape
Dim oTxtRng As TextRange
Dim oTmpRng As TextRange
Set oSld = Application.ActivePresentation.Slides(1)
For Each oShp In oSld.Shapes
Set oTxtRng = oShp.TextFrame.TextRange
Set oTmpRng = oTxtRng.Replace(FindWhat:="Name Here", _
Replacewhat:="TESTTEST", WholeWords:=True)
Next oShp
End Sub
错误发生在Set oTxtRng = oShp.TextFrame.TextRange
行,错误为"the specified value is out of range"。任何人都知道为什么我会收到此错误,以及如何避免它?这是在 Powerpoint 的 VBA 编辑器中,我打开了 ppt 演示文稿
如果您已经打开了ppt,请不要创建而是获取对象。而不是:
Set oPPTApp = CreateObject("PowerPoint.Application")
你应该
Set oPPTApp = GetObject(, "PowerPoint.Application")
然后,不要打开演示文稿,而是使用已经打开并处于活动状态的演示文稿:
Set oPPTFile = oPPTApp.ActivePresentation
如果只有一张幻灯片,您可以使用以下代码访问其中的形状
Dim sh As PowerPoint.Shape
For Each sh In oPPTFile.Slides(1).Shapes
'do something with sh
Next sh
您要查找的 属性 可能是 sh.TextFrame.TextRange.Text,但请使用 Intellisense 进行实验。
有些形状没有文本框(lines/connectors/OLE 对象等),因此您想先进行测试。然后该形状可能有一个文本框但其中没有文本,因此您可以对其进行测试。然后你可以将文本范围分配给一个变量:
If oShp.HasTextFrame Then
If oShp.TextFrame.HasText Then
Set oTxtRng = oShp.TextFrame.TextRange
End If
End If