我的文档包含大量空格和段落标记。
我想要做的是检测字符Selection.find
是否是从A到Z的任何字母?
Dim EE As String
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^?"
.Forward = True
.Wrap = wdFindStop
End With
Selection.Find.Execute
EE = Selection.Text
If isletter = True Then
MsgBox ("Letter found")
Else
MsgBox ("No letter found")
End If
答案 0 :(得分:2)
如果您想获得所选内容的第一个字符,您还可以使用Left(Selection,1)
。如果要查找第一个字母,可以使用:
With Selection.Find
.MatchWildcards = true
.Text = "[a-zA-Z]" '[A-Z] if you only want upper case
.Forward = True
.Wrap = wdFindStop
End With
如果你想知道一个字符串(长度为1)是否是一个字母,你可以使用Like
进行一些模式匹配:
If EE Like "[A-Z]" Then '"[a-zA-Z]" for upper and lower case
或检查其unicode值
If AscW(EE)>=AscW("A") and AscW(EE)<=AscW("Z") Then 'for upper case letters
编辑:删除了最后一个示例,因为它没有按预期工作。
答案 1 :(得分:0)
对段落标记进行了一些研究,发现Chr(13)
可以检测到^p
(段落标记)。
以下代码可以检测到paragraph mark
或Letter
。
Sub FindanyLetter()
Dim EE As String
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^?"
.Forward = False
.Wrap = wdFindStop
End With
Selection.Find.Execute
EE = Selection.Text
If EE = Chr(13) Or EE = " " Then
MsgBox "Paraghraph mark or space"
Else
MsgBox "Letter"
End If
End Sub