将所有单词转换为首字母大写(首字母缩写词除外)

时间:2020-04-14 12:37:14

标签: vba ms-word title-case

除了Microsoft Word中的首字母缩写词(或所有大写字母的任何单词)外,想请教有关如何将句子转换为标题的任何建议。目前,我的代码仅在Title情况下以特定样式转换所有句子。希望您能对此有所帮助。谢谢

Sub ChangeCase() StrFind = "K-1,K-2,K-3" 
      For i = 0 To UBound(Split(StrFind, ","))
     With Selection.Find
     .ClearFormatting
     .Wrap = wdFindContinue
     .Forward = True
     .Format = True
     .MatchWildcards = False
     .Text = ""
     .Style = Split(StrFind, ",")(i)
     .Execute
     While .Found
         Selection.Range.Case = wdTitleWord
         Selection.Collapse Direction:=wdCollapseEnd
        .Execute
     Wend
 End With
 Next i
 End Sub

1 个答案:

答案 0 :(得分:2)

如果目标是尚未完全大写的TitleCase单词,我认为下面的方法应该有用。

Option Explicit

Public Sub TitleCaseDocument()
    Dim doc As Document: Set doc = ThisDocument
    Dim wrd As Range

    For Each wrd In doc.Words
        If wrd.Text <> UCase$(wrd.Text) Then wrd.Case = wdTitleWord
    Next
End Sub