如果我不能很好地解释这一点,我很抱歉。语言障碍等等。也许可以解释为什么我无法在谷歌上找到解决方案。。。无论如何我正在尝试制作一个交互式Powerpoint,在第一张幻灯片中,用户将自己的名字写在ActiveX文本框中,然后在其他几张幻灯片中重复这个名字。因为名称会位于不同文本的中间,所以我的解决方案是添加一个占位符单词,然后将其替换为文本框值。我能够用一个足够好的代码来替换一个名称,但我无法让文本框使用它。我能做的最好的事情是用TextBox1.Value的一些变体来替换占位符名称,虽然我知道是什么导致了这个问题,但我找不到解决方案。不确定这是否会有所不同,但计划是添加某种";OK";按钮,位于运行宏的活动文本框旁边。
Sub Findandreplace()
Dim sld As Slide
Set sld = ActivePresentation.Slides(1)
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
shp.TextFrame.TextRange.Text = Replace(shp.TextFrame.TextRange.Text, "word1", "word2")
End If
End If
Next shp
Next sld
End Sub
osh.OLEFormat.Object.Text
将向您提供ActiveX文本框中的文本