我是powerpoint对象模型的新手,想知道为什么下面的代码片段不起作用。代码的目的是通过一个textframe并用它们的小写等价物替换某些单词。我不确定我是否要正确地替换这个词......但我很担心为什么该计划不会进入"进入" if语句......即使它找到""他们都是弦乐!
任何帮助表示赞赏! :)
Sub findConjectures()
Dim theWord As TextRange
With ActiveWindow.Selection.ShapeRange(1).TextFrame
For Each theWord In .TextRange.Words
MsgBox CStr(theWord) 'just used this as a test
If CStr(LCase(theWord)) = "of" Then ' this is the part that confuses me!
theWord.Text = LCase(theWord) 'not sure if this is used correctly
End If
Next
End With
End Sub
答案 0 :(得分:1)
尝试使用strcomp函数,比如。
Dim str1 as String = "of"
strcomp(CStr(LCase(theWord)), str1)
http://msdn.microsoft.com/en-us/library/9s233cfc(v=vs.90).aspx
答案 1 :(得分:0)
为什么下面的代码片段不起作用。
代码片段正在工作,它只是没有按照您的期望行事:)
...因为每个theWord
可能包含尾随空格:"of "
<> "of"
要处理这种潜力,还要处理Trim
函数(你可以省略Cstr
,因为这里没有任何影响):
If LCase(Trim(theWord)) = "of" Then
theWord.Text = LCase(theWord)
End If
因此,我们比较 trimmed 字符串,然后我们替换整个字符串,这会保留尾随空格。
您可能也对TextRange.Replace
方法感兴趣,正如Steve Rindsberg在评论中提到的那样。