我在写一个PPT的Macro的时候用find定位指定字符时候遇到find方法只返回nothing的情况,如下是我的代码
`Public Sub Test()
Dim oSlide As Slide, txtRng, De, shp, n As Integer
For Each oSlide In Application.ActivePresentation.Slides
For Each shp In oSlide.Shapes
If shp.HasTextFrame Then
Set txtRng = shp.TextFrame.TextRange
Set De = txtRng.Find(FindWhat = "Wholesale")
If Not De Is Nothing Then
n = n + 1
End If
End If
Next
Next
End Sub
我在这个代码里修改怎么都是返回nothing,如下是我根据微软文档里面find方法示例修改的,find,原文档用的是Do Loop循环,我用if并不影响
Public Sub Test()
Dim oSlide As Slide, txtRng, De, shp, n As Integer
For Each oSlide In Application.ActivePresentation.Slides
For Each shp In oSlide.Shapes
If shp.HasTextFrame Then
Set txtRng = shp.TextFrame.TextRange
Set foundText = txtRng.Find(FindWhat:="Name")
If Not foundText Is Nothing Then
n=n+1
End If
End If
Next
Next
End Sub
用sublime text对比发现,是findwhat后面少了一个冒号,但是这个冒号不写也不会报错,find的参数都要带冒号,以上。