WORD VBA сортировка слов в абзацах - PullRequest
0 голосов
/ 17 марта 2011

Привет, ребята, я надеюсь, что вы, ребята, можете указать мне правильное направление. Я пытаюсь придумать макрос, который будет сортировать слова в порядке возрастания для каждого абзаца. Чтобы было понятно, я привожу пример ниже:

The quick brown fox jumps over the lazy dog. <---- given
brown dog fox jumps lazy over quick the the <---- the output

Вывод должен отображаться ниже пункта / с в конце уже отсортированного документа. Любая помощь или совет относительно того, как я могу сделать это с помощью диапазонов, пожалуйста, дайте мне знать. спасибо!

1 Ответ

1 голос
/ 17 марта 2011

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

Обратите внимание, что вам нужно куда-то добавить отсортированный массив (на данный момент это только сортировка значений массива).* Я использовал доступную функцию сортировки ЗДЕСЬ .

Надеюсь, это поможет!

Option Explicit
Option Compare Text

Sub orderParagraph()

    Dim oParagraph As Word.Paragraph
    Dim vParagraphText As Variant

    For Each oParagraph In ActiveDocument.Paragraphs

        If Len(Trim(oParagraph.Range.Text)) > 0 Then

            vParagraphText = oParagraph.Range.Text
            vParagraphText = Split(vParagraphText, " ")
            SortArray vParagraphText

        End If

    Next oParagraph


End Sub

Private Function SortArray(ByRef TheArray As Variant)

    Dim x As Integer
    Dim bSorted As Boolean
    Dim sTempText As String

    bSorted = False

    Do While Not bSorted

        bSorted = True

        For x = 0 To UBound(TheArray) - 1

            If TheArray(x) > TheArray(x + 1) Then

                sTempText = TheArray(x + 1)
                TheArray(x + 1) = TheArray(x)
                TheArray(x) = sTempText
                bSorted = False

            End If

        Next x

    Loop

End Function
...