如何确定选择是否包含换行符?

时间:2014-05-27 16:10:01

标签: vba replace comparison newline word-vba

我正在使用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

1 个答案:

答案 0 :(得分:1)

&#34; ^ p&#34;我认为,符号仅在查找和替换中有效。试试vbCr

If Selection.Text <> vbcr & vbcr Then