Word VBA прописные буквы первого символа слов - PullRequest
0 голосов
/ 19 февраля 2019

Хорошо, допустим, я хочу прописать первый символ в словах в выбранном диапазоне в документе Word, за исключением некоторых выражений.У меня есть скрипт, который делает аналогичные вещи, но у меня есть проблемы с некоторыми выражениями.В скрипте я использую Selection.Range.Case, но проблема с URL-адресами.Я хотел бы оставить все в адресах в маленьком регистре, но Selection.Range.Case растворяет URL-ссылки на несколько строк, таких как: https,:, //, / и т. Д., И каждый первый символ этой строки URL-адреса становится заглавным.Выбранный диапазон текста находится в нумерованном списке, а URL-адреса являются последними перед следующим пронумерованным элементом.Есть ли какое-то решение, где я могу объединить все после http: // или https: // в одну строку прямо перед следующим пронумерованным элементом?Спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Может попробовать что-то подобное, если выбранный диапазон текста находится только в нумерованном списке

Sub test()
Dim Pg As Paragraph, Pos As Long, Rng As Range

    For Each Pg In Selection.Paragraphs
        If Not Pg.Range.ListFormat.List Is Nothing Then  'Process only bulleted list
        PgTxt = Pg.Range.Text
        'Debug.Print PgTxt
        Pos = InStr(1, PgTxt, "http")
           If Pos <> 1 Then  'bypass if http found at start of List item then no Case Change
           If Pos > 1 Then Pos = Pos - 1        'http found some where within the List item
           If Pos = 0 Then Pos = Len(PgTxt)     ' if http not found in the list Item
           Set Rng = ActiveDocument.Range(Pg.Range.Start, Pg.Range.Start + Pos)
           Rng.Case = wdTitleWord
           End If
        End If
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...