Загрузка данных


Sub PasteAndClean()
    ' 1. Вставка как неформатированный текст
    Selection.PasteSpecial DataType:=wdPasteText, Placement:=wdInLine

    ' 2. Преобразование регистра: каждое слово с заглавной
    Selection.Range.Text = StrConv(Selection.Range.Text, vbProperCase)

    ' 3. Обработка абзацев (чистка и интервалы)
    Dim para As Paragraph
    Dim i As Long

    ' Убираем конечные пробелы/табы и обнуляем SpaceAfter
    For Each para In Selection.Paragraphs
        With para.Range
            If .Characters.Count > 1 Then
                .MoveEnd Unit:=wdCharacter, Count:=-1
                Do While .Characters.Count > 0 And _
                        (.Characters.Last = " " Or .Characters.Last = vbTab)
                    .Characters.Last.Delete
                Loop
            End If
        End With
        para.SpaceAfter = 0
    Next para

    ' Удаляем пустые абзацы (ищем в обратном порядке)
    For i = Selection.Paragraphs.Count To 1 Step -1
        Set para = Selection.Paragraphs(i)
        Dim txt As String
        txt = para.Range.Text
        txt = Replace(txt, " ", "")
        txt = Replace(txt, vbTab, "")
        If Len(txt) = 1 And Asc(txt) = 13 Then ' только маркер конца абзаца
            para.Range.Delete
        End If
    Next i

    MsgBox "Готово! Имена приведены к Proper Case, лишние пробелы и пустые строки удалены.", vbInformation
End Sub