你问空行…“空段落”和“空行”在字面上有一个重要的区别。大多数人在使用“行”这个词时都是指段落,但段落以ansi 13结尾,而行以ansi 11结尾(shift+enter)。假设你的意思是段落…。
有很多种方法可以解决这个问题,但一个简单的方法可以测试段落中有多少字符。空段落只有1个字符,ansi 13:。
if selection.paragraphs(1).range.characters.count=1 then
'只有段落标记-段落(行)为空
结束如果
如果你的意思是“线”,那就更复杂了。一行可以为空,而段落可以包含其他行上的其他内容。下面是一个例子

此外,选择可能不是单点,这在询问选择是否在空行/段落中时很重要。
以下步骤首先检查selection.type
如果不是IP,则不会发生任何情况。然后检查所选内容是否在空段落中(如上所述)。如果段落包含多个段落,则必须确定选择前后的内容。无论是ANSI 13还是ANSI 11都可能处于这些位置,而不是其他任何位置。
该选项被扩展到搜索ansi 11和ansi 13,但搜索仅限于一个字符。如果搜索成功,将返回1和-1,否则返回0。如果是1和-1,则所选内容为空行,即使段落包含多行,如图像中所示。
在图像中,第一行是空段落;第二行不是空段落;第三行是空段落;第四行不是空段落;第五行是空段落。
sub-emptylineorpara()。
将NRchars变暗为长
调暗为字范围
变暗NRcharsmovedforward,变长
将nrcharsmovedbackward变暗为长
如果selection.type=wdselectionip,则
设置rng=选择。段落(1)。范围
nrchars=rng.characters.count
如果nrchars=1,则
debug.print“空段落”
Elseif NRchars>1然后
nCharsMovedForward=selection.moveEndUntil(chr(11)&chr(13),1)
nCharsMovedBackward=selection.moveStartUntil(cset:=chr(11)&chr(13),count:=-2)
如果nCharsMovedForward=1和nCharsMovedBackward=-1,则
调试打印“空行”
elseif selection.fields.count>0然后
debug.print“选择包含字段!”
否则
调试打印“非空”
结束如果
结束如果
结束如果
末端接头
e术语“行”,但段落以ansi 13结尾,而行以ansi 11结尾(shift+enter)。假设你是指段落…
有很多种方法可以解决这个问题,但一个简单的方法可以测试段落中有多少字符。空段落只有1个字符,ansi 13:
If Selection.Paragraphs(1).Range.Characters.Count = 1 Then
'Only a paragraph mark - the paragraph (line) is empty
End If
如果你的意思是“线”,那就更复杂了。一行可以为空,而段落可以包含其他行上的其他内容。下面是一个例子

此外,选择可能不是单点,这在询问选择是否在空行/段落中时很重要。
以下步骤首先检查Selection.Type
如果不是IP,什么都不会发生。然后检查所选内容是否在空段落中(如上所述)。如果段落包含多个段落,则必须确定选择前后的内容。ANSI 13或ANSI 11可能在这些位置,而不是其他位置。
该选项被扩展到搜索ansi 11和ansi 13,但搜索仅限于一个字符。如果搜索成功,将返回1和-1,否则返回0。如果是1和-1,则所选内容为空行,即使段落包含多行,如图像中所示。
在图像中,第一行是空段落;第二行不是空段落;第三行是空段落;第四行不是空段落;第五行是空段落。
Sub EmptyLineOrPara()
Dim nrChars As Long
Dim rng As Word.Range
Dim nrCharsMovedForward As Long
Dim nrCharsMovedBackward As Long
If Selection.Type = wdSelectionIP Then
Set rng = Selection.paragraphs(1).Range
nrChars = rng.Characters.Count
If nrChars = 1 Then
Debug.Print "Empty paragraph"
ElseIf nrChars > 1 Then
nrCharsMovedForward = Selection.MoveEndUntil(Chr(11) & Chr(13), 1)
nrCharsMovedBackward = Selection.MoveStartUntil(CSet:=Chr(11) & Chr(13), Count:=-2)
If nrCharsMovedForward = 1 And nrCharsMovedBackward = -1 Then
Debug.Print "Empty line"
ElseIf Selection.Fields.Count > 0 Then
Debug.Print "Selection contains fields!"
Else
Debug.Print "Not empty"
End If
End If
End If
End Sub