Автоматически добавлять пробелы между словами в документе Word

Вопрос или проблема

У меня есть документ Word объемом около 200 страниц. Текст, который я вставил из PDF, по какой-то причине потерял пробелы. Как мне это исправить?

Это довольно интересно, но также и сложно.

Мой настоящий ответ – предложить вам исправить проблему, связанную с тем, как был экспортирован PDF!

Тем не менее, этот VBA может вам помочь. Отмены нет, так что сначала создайте резервную копию.

Option Explicit
Sub DoIt()

Dim maxChars As Integer
maxChars = 30                         'обновите для самого длинного слова, которое вы хотите проверить (максимальное количество символов в слове)

Dim pos As Integer
pos = 0

Dim total As Integer
total = Len(Range.Text)

Do While (pos < Len(Range.Text))

Dim s As String
s = ""

Dim wordToUse As String
wordToUse = ""
Dim i As Integer
    For i = 1 To maxChars

    s = s + Mid(Range.Text, pos + i, 1)

    If SpellCheck(s) = True Then
        wordToUse = s
    End If

    Next i

pos = pos + Len(wordToUse)
Dim lef As String
Dim rig As String

lef = Trim(left(Range.Text, pos))
rig = Trim(Mid(Range.Text, pos + 1))

Range.Text = Trim(lef) + " " + Trim(Replace(rig, "  ", " "))

If pos >= total Then
Exit Do
End If

Loop


End Sub


Function SpellCheck(SomeWord As String) As Boolean
'credit https://stackoverflow.com/a/10776225/1221410
    SpellCheck = Application.CheckSpelling(SomeWord)
End Function

Логика проста – добавляйте символы, пока не найдете действительное слово… в этот момент убедитесь, что это не часть другого слова (например, и существует в land). Затем добавьте пробел в конце.

Как мне добавить VBA в MS Office?

Что помогло мне, так это выделить весь текст в файле Word и нажать Очистить форматирование:

скриншот инструмента

Ответ или решение

Чтобы автоматически добавить пробелы между словами в документе Word, следуйте приведенным ниже рекомендациям. Этот процесс важен для восприятия текста, поскольку отсутствие пробелов может сделать его трудночитаемым, особенно если речь идет о большом документе, содержащем 200 страниц.

Проблема

При копировании текста из PDF-документа в Word могут возникнуть проблемы с форматированием, включая отсутствие пробелов между словами. Это происходит из-за особенностей обработки текста в PDF-формате и может привести к значительным усилиям при редактировании.

Решения

1. Удаление форматирования

Простой и быстрый способ решить проблему состоит в том, чтобы выделить весь текст и воспользоваться функцией "Очистить форматирование":

  • Выделите весь текст (Ctrl + A).
  • Перейдите в вкладку «Главная».
  • Нажмите на кнопку "Очистить форматирование" (иконка с буквой "А" и ластиком).

Этот метод может исправить многие проблемы с форматированием текста, хотя он не всегда гарантирует полное решение проблемы с пробелами.

2. Использование VBA для автоматического добавления пробелов

Если проблема остается нерешенной, можно воспользоваться макросом на VBA (Visual Basic for Applications). Вот шаги, как это сделать:

  1. Создайте резервную копию документа: Перед выполнением любых изменений обязательно создайте копию документа, так как невозможно будет отменить действия макроса.

  2. Открытие редактора VBA:

    • Нажмите Alt + F11 для открытия редактора Visual Basic.
    • В редакторе выберите «Insert» -> «Module», чтобы создать новый модуль.
  3. Вставьте код макроса:

Option Explicit
Sub DoIt()

    Dim maxChars As Integer
    maxChars = 30                         'Обновите для максимальной длины слова

    Dim pos As Integer
    pos = 0

    Dim total As Integer
    total = Len(Range.Text)

    Do While (pos < Len(Range.Text))

        Dim s As String
        s = ""

        Dim wordToUse As String
        wordToUse = ""
        Dim i As Integer
        For i = 1 To maxChars

            s = s + Mid(Range.Text, pos + i, 1)

            If SpellCheck(s) = True Then
                wordToUse = s
            End If

        Next i

        pos = pos + Len(wordToUse)
        Dim lef As String
        Dim rig As String

        lef = Trim(Left(Range.Text, pos))
        rig = Trim(Mid(Range.Text, pos + 1))

        Range.Text = Trim(lef) + " " + Trim(Replace(rig, "  ", " "))

        If pos >= total Then
            Exit Do
        End If

    Loop

End Sub

Function SpellCheck(SomeWord As String) As Boolean
    SpellCheck = Application.CheckSpelling(SomeWord)
End Function
  1. Завершите и выполните макрос:
    • Закройте редактор VBA и вернитесь в Word.
    • Запустите макрос, нажав Alt + F8, выберите макрос и нажмите "Выполнить".

Заключение

После выполнения вышеописанных действий ваш документ должен быть приведен в порядок, и пробелы между словами будут добавлены. Помните, что в некоторых случаях эта проблема может быть решена на этапе экспорта PDF-файлов, чтобы избежать повторного возникновения подобных ситуаций. Всегда полезно проверить параметры экспорта в используемом вами PDF-редакторе, чтобы минимизировать проблемы с форматированием текстов в будущем.

Оцените материал
Добавить комментарий

Капча загружается...