我正在使用Word 2010中的宏,并且该宏的一部分工作是确定在选择之前是否有两个换行符(^ p或^ 13,根据我的谷歌搜索)。不过,我有点卡住了。
我到目前为止,宏搜索了一系列字符,让我们说" TOW"。一次" TOW"选中后,我打电话给Selection.MoveLeft取消选择" TOW"但是将插入点立即放在它前面,然后再选择Selection.MoveLeft来选择" TOW"左边的两个字符。 一行代码读取,
If Selection.Text <> "^p^p" Then
当我打开我的段落标记,并逐行运行宏时,我可以看到宏选择了两个换行标记(有趣的倒退P&#39; s),它位于&#34; TOW&的一个实例之前#34;,但上面的if语句总是评估为false,即使我可以明白地看到它应该是真的。
这里发生了什么?
With Selection.Find
.Text = "TOW:"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend
If Selection.Text <> "^p^p" Then
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeParagraph
Else
Selection.MoveRight Unit:=wdCharacter, Count:=10
End If
Loop
答案 0 :(得分:1)
&#34; ^ p&#34;我认为,符号仅在查找和替换中有效。试试vbCr
If Selection.Text <> vbcr & vbcr Then