如何测试插入点是否位于手动分页符创建的新页面的开头?看起来它应该像检查前面的字符是否为CHR(12)一样简单,但这似乎不起作用。
If Selection.Type = CHR(12) Then
Selection.TypeText Text:="HARD PAGE"
Else
Selection.TypeText Text:="NO HARD PAGE"
End If
这只是一个语法错误,还是我的错误方法?
答案 0 :(得分:1)
您必须向后移动选择(或范围)。 Selection.Text(或Range.Text)始终返回跟随 IP的字符。当然,您可能不想实际移动选择。这意味着您可以使用Range
对象进行测试。
由于你必须向后移动,无论如何,为了测试是否存在硬分页,我将它放在一个循环中,以便选择可以在页面的任何位置开始。
另外,我已经添加了一个检查宏是否已在第一页上启动的问题,因为否则您将进入无限循环,从Selection向后移动到下一页。
Sub CheckWhetherHardPageBreak()
Dim rngToCheck As word.Range
Dim pgNr As Long
Dim pgNrChange As Long
Set rngToCheck = Selection.Range
pgNr = rngToCheck.Information(wdActiveEndPageNumber)
If pgNr = 1 Then
MsgBox "Can't start on Page 1"
Exit Sub
End If
pgNrChange = pgNr
Do While pgNrChange = pgNr
rngToCheck.MoveEnd wdCharacter, -1
pgNrChange = rngToCheck.Information(wdActiveEndPageNumber)
Loop
'Extend the selection to include the following character
'So that ASC() works
rngToCheck.MoveEnd wdCharacter, 1
If Asc(rngToCheck.Text) <> 12 Then
'Move it back before the previous character
'as the character immediately following a hard page break is Chr(13)
rngToCheck.MoveEnd wdCharacter, -2
End If
rngToCheck.MoveEnd wdCharacter, 1
If Asc(rngToCheck) = 12 Then
Selection.TypeText Text:="HARD PAGE"
Else
Selection.TypeText Text:="NO HARD PAGE"
End If
End Sub
答案 1 :(得分:-1)
我认为您可能打算使用 Chr(13)
或 Chr(10)
。
此处提供更多信息: