Преобразовать все слова в заглавные, кроме аббревиатур - PullRequest
0 голосов
/ 14 апреля 2020

Хотел бы спросить любой совет о том, как преобразовать предложение в заглавие, за исключением акронимов (или любых слов, которые есть во всех заглавных буквах) в Microsoft Word. В настоящее время мой код только преобразует все предложения в определенном стиле c в случае заголовка. Надеюсь, вы могли бы помочь с этим. Спасибо

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 Ответ

2 голосов
/ 14 апреля 2020

Если цель состоит в том, чтобы использовать слова 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
...