1

У меня есть файл, в котором есть слова для поиска. Я хочу выделить эти слова в активном документе.

Например: style.docx:

school
Agro commercial
abovementioned
some words
physics

Активный документ:

Это строки, чтобы объяснить некоторые слова, такие как вышеупомянутые и школа.
Это конец строки.

Ожидаемый результат: некоторые слова, упомянутые выше, должны быть выделены в активном документе.

Я попробовал приведенный ниже код:

   Dim docTitle As Document
    Dim docStyle As Document
    Set docTitle = Documents.Open(FileName:="C:\Documents and Settings\quads\Desktop\stylesheet.docx", ConfirmConversions:=True)
    Set docStyle = Documents.Open(FileName:="C:\Documents and Settings\quads\Desktop\files\Albala D-ed.doc", ConfirmConversions:=True)

    Dim char As Long
    Dim x As Long
    Dim count As Integer


    Dim Para As Paragraph

    For Each Para In docTitle.Paragraphs
      If Len(Para.Range.Text) > 0 Then
                ActiveDocument.Range(0, 0).Select

        Selection.Find.ClearFormatting
                With Selection.Find
                .Text = Left(Para.Range.Text, Len(Para.Range.Text) - 1)
                .Replacement.Text = ""
                .Forward = True
                .Wrap = wdFindContinue
                .Format = True
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            Selection.Find.Execute

        End If
        ActiveDocument.Range(0, 0).Select

    Next Para

Продолжаю пытаться заставить мой код работать, но не повезло. А также я хочу искать в определенной папке ("файлы") без упоминания имени файла. Просто мне нужно искать все файлы в этой папке. Пожалуйста, помогите мне!

1 ответ1

0

Я вставил свой ответ, который выделяет несколько искомых слов (из другого файла) желтым цветом.Файл искомого слова и файл, который нужно выделить, можно выбрать с помощью объекта диалога файла.

Dim filepath As String
Dim filename As FileDialog
Dim stylepath As String
Dim stylename As FileDialog
MsgBox ("Please choose Style File Name")

Set stylename = Application.FileDialog(filedialogtype:=msoFileDialogFilePicker)
If stylename.Show Then
stylepath = stylename.SelectedItems(1)
End If

Set filename = Application.FileDialog(filedialogtype:=msoFileDialogFilePicker)
If filename.Show Then
filepath = filename.SelectedItems(1)
End If

Dim range As range
Dim i As Long
Dim arr() As String
Dim docTitle As Document
Dim docStyle As Document
    Set docTitle = Documents.Open(stylepath)
    Set docStyle = Documents.Open(filepath)


arr = Split(docTitle.Content.Text, Chr(13))

For i = 0 To UBound(arr)
Set range = docStyle.range

With range.Find
.Text = arr(i)
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False

Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdYellow

Loop

End With
Next

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .