我正在尝试提出某种宏来帮助我验证我在文档中始终大写单词。我已经使用这个宏来突出显示大写的单词,但它并没有帮助我验证该单词的所有实例都是大写的:
Sub Capitals()
Dim oRng As range
Set oRng = ActiveDocument.range
With oRng.Find
Do While .Execute(FindText:="([A-Z])", MatchWildcards:=True)
oRng.HighlightColorIndex = wdYellow
oRng.Collapse 0
Loop
End With
Dim oRng1 As range
Set oRng1 = ActiveDocument.range
With oRng1.Find
Do While .Execute(FindText:="([.\!?]) [A-Z]*>", MatchWildcards:=True)
oRng1.HighlightColorIndex = wdNoHighlight
oRng1.Collapse 0
Loop
End With
我甚至不确定如何开始接近这个。有没有人有想法?
答案 0 :(得分:0)
对此的解决方案看起来并不快。但是,我认为我会基本上采取三个步骤来解决问题:
关于字典对象:乍一看,集合对象似乎更好。但是,我认为VBA中的集合对象不区分大小写,无法使其区分大小写。默认情况下,VBA中的字典区分大小写(如果需要,可以使用允许您将其设置为不区分大小写的属性)。
最后,我不喜欢我的解决方案。但这是我在VBA中想到的唯一方法。另一种选择,不是在VBA中,将使用Python之类的ms office软件包。这将允许您在正则表达式中使用负向lookbehind,并且还允许更轻松地对列表进行排序。