Поиск в word из excel в
Чет не получается у меня поиск подстрок. По идее должно выделять найденные подстроки, но не выходит.
Вообще нужно найденное выделить цветом и подсчитать количество вхождений. У меня пока даже не ищет.
[vba]
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
Else
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
End If
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
End With
Set objWrdDoc = Nothing
Set objWrdApp = Nothing
End Sub
Чет не получается у меня поиск подстрок. По идее должно выделять найденные подстроки, но не выходит.
Вообще нужно найденное выделить цветом и подсчитать количество вхождений. У меня пока даже не ищет.
[vba]
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
Else
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
End If
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
End With
Set objWrdDoc = Nothing
Set objWrdApp = Nothing
End Sub
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
Else
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
End If
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
End With
Set objWrdDoc = Nothing
Set objWrdApp = Nothing
End Sub
Спасибо, с .execute разобрался, осталось понять как красить найденный текст и подсчитать количество вхождений. .
Спасибо, с .execute разобрался, осталось понять как красить найденный текст и подсчитать количество вхождений. . Udik
With objWrdApp.Selection.Find
.Text = "test" ' Ищет в Ворде текст,который нужно.
Do
res = .Execute
If res Then
'Заливка
objWrdApp.Selection.Shading.BackgroundPatternColor = wdColorYellow
'Выделение
'objWrdApp.Selection.Range.HighlightColorIndex = wdRed
cnt = cnt + 1
End If
Loop While res
End With
Debug.Print cnt
With objWrdApp.Selection.Find
.Text = "test" ' Ищет в Ворде текст,который нужно.
Do
res = .Execute
If res Then
'Заливка
objWrdApp.Selection.Shading.BackgroundPatternColor = wdColorYellow
'Выделение
'objWrdApp.Selection.Range.HighlightColorIndex = wdRed
cnt = cnt + 1
End If
Loop While res
End With
Debug.Print cnt
With objWrdApp.Selection.Find
.Text = "test" ' Ищет в Ворде текст,который нужно.
Do
res = .Execute
If res Then
'Заливка
objWrdApp.Selection.Shading.BackgroundPatternColor = wdColorYellow
'Выделение
'objWrdApp.Selection.Range.HighlightColorIndex = wdRed
cnt = cnt + 1
End If
Loop While res
End With
Debug.Print cnt
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
Dim i As Long, r As Word.Range
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
' number text
Set r = objWrdApp.Selection.Range
With r.Duplicate.Find
.ClearFormatting
Do While .Execute(str1, False, False, Wrap:=wdFindStop)
i = i + 1 'количество вхождений
Loop
End With
' end number text
' выделение цветом
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
Options.DefaultHighlightColorIndex = wdRed ' цвет выделения
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
.Replacement.Text = str1 ' текст для замены
.Replacement.Highlight = True
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
objWrdApp.Selection.Find.Execute Replace:=wdReplaceAll
Set objWrdDoc = Nothing
Set objWrdApp = Nothing
End Sub
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
Dim i As Long, r As Word.Range
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
' number text
Set r = objWrdApp.Selection.Range
With r.Duplicate.Find
.ClearFormatting
Do While .Execute(str1, False, False, Wrap:=wdFindStop)
i = i + 1 'количество вхождений
Loop
End With
' end number text
' выделение цветом
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
Options.DefaultHighlightColorIndex = wdRed ' цвет выделения
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
.Replacement.Text = str1 ' текст для замены
.Replacement.Highlight = True
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
objWrdApp.Selection.Find.Execute Replace:=wdReplaceAll
Set objWrdDoc = Nothing
Set objWrdApp = Nothing
End Sub
Public Sub findStr()
Dim objWrdApp As Object
Dim str1 As String
Dim objWrdDoc As Object
Dim i As Long, r As Word.Range
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\2.docx")
str1 = Cells(2, 1).Value
objWrdApp.Visible = True
objWrdApp.Activate
' number text
Set r = objWrdApp.Selection.Range
With r.Duplicate.Find
.ClearFormatting
Do While .Execute(str1, False, False, Wrap:=wdFindStop)
i = i + 1 'количество вхождений
Loop
End With
' end number text
' выделение цветом
objWrdApp.Selection.Find.ClearFormatting
objWrdApp.Selection.Find.Replacement.ClearFormatting
Options.DefaultHighlightColorIndex = wdRed ' цвет выделения
With objWrdApp.Selection.Find
.Text = str1 ' Ищет в Ворде текст,который нужно.
.Replacement.Text = str1 ' текст для замены
.Replacement.Highlight = True
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
objWrdApp.Selection.Find.Execute Replace:=wdReplaceAll
Добрый день!
Прошу помощи с реализацией следующего:
1. есть файл Excel, в котором содержится поле для ввода информации для поиска;
2. есть набор файлов .docx, которые выступают в качестве "базы данных";
3. необходимо осуществить поиск информации из поля в Excel по "базе данных".
Пока получается открыть файл .docx из Excel:
Sub OpenDoc()
Dim WordObj As Object
Dim WordDoc As Object
Set WordObj = CreateObject("Word.Application")
Set WordDoc = WordObj.Documents.Open("C:\Перечень стратегов по Распоряжению правительства.docx")
'WordObj.Visible = True
Set WordDoc = Nothing
Set WordObj = Nothing
End Sub
[/vba]
И есть понимание, что поиск в открытом файле должен осуществляться через ActiveDocument.Content.Find, но как сделать активным именно открытый документ, понимания нет. Пример файла "базы данных" во вложении.
P.S. К сожалению, перевести файлы .docx в другой формат не получится, потому что они все время меняются/удаляются/добавляются. Нет, наверное эту задачу можно быстро и легко реализовать с помощью других языков, но знаний хватает только на работу с VBA на уровне copy-paste.
Добрый день!
Прошу помощи с реализацией следующего:
1. есть файл Excel, в котором содержится поле для ввода информации для поиска;
2. есть набор файлов .docx, которые выступают в качестве "базы данных";
3. необходимо осуществить поиск информации из поля в Excel по "базе данных".
Пока получается открыть файл .docx из Excel:
Sub OpenDoc()
Dim WordObj As Object
Dim WordDoc As Object
Set WordObj = CreateObject("Word.Application")
Set WordDoc = WordObj.Documents.Open("C:\Перечень стратегов по Распоряжению правительства.docx")
'WordObj.Visible = True
Set WordDoc = Nothing
Set WordObj = Nothing
End Sub
[/vba]
И есть понимание, что поиск в открытом файле должен осуществляться через ActiveDocument.Content.Find, но как сделать активным именно открытый документ, понимания нет. Пример файла "базы данных" во вложении.
P.S. К сожалению, перевести файлы .docx в другой формат не получится, потому что они все время меняются/удаляются/добавляются. Нет, наверное эту задачу можно быстро и легко реализовать с помощью других языков, но знаний хватает только на работу с VBA на уровне copy-paste. tsch
Пока получается открыть файл .docx из Excel:
Sub OpenDoc()
Dim WordObj As Object
Dim WordDoc As Object
Set WordObj = CreateObject("Word.Application")
Set WordDoc = WordObj.Documents.Open("C:\Перечень стратегов по Распоряжению правительства.docx")
'WordObj.Visible = True
Set WordDoc = Nothing
Set WordObj = Nothing
End Sub
[/vba]
И есть понимание, что поиск в открытом файле должен осуществляться через ActiveDocument.Content.Find, но как сделать активным именно открытый документ, понимания нет. Пример файла "базы данных" во вложении.
P.S. К сожалению, перевести файлы .docx в другой формат не получится, потому что они все время меняются/удаляются/добавляются. Нет, наверное эту задачу можно быстро и легко реализовать с помощью других языков, но знаний хватает только на работу с VBA на уровне copy-paste. Автор - tsch
Дата добавления - 09.02.2018 в 08:08
Если вы хотите найти и повторно использовать содержимое, которое вы или члены вашей команды ранее использовали в документах и письмах, функция "Тематический поиск" в Word 2016 и Outlook 2016 поможет вам.
Коснитесь Word 2016 позволяет использовать и использовать существующий контент в Word 2016, чтобы сосредоточиться на создании документов, а не на поиске файлов и поиске информации. Повторное использование файлов используется для наиболее часто используемых вами и вашими сотрудниками файлов. Повторное использование Файлов рекомендует персонализированное содержимое из приложений Word, Excel PowerPoint и отображает его в области Повторное использование файлов. После того как файлы будут вспомина, вы сможете втащить их в рабочий документ и приступить к его построению. Если то, что вы ищете, не было в области, повторное использование файлов позволяет искать нужные данные в области. Чтобы вставить и повторно использовать содержимое в рабочем документе Word, просто наведите курсор на любой результат в области касания и выберите
Примечание: Повторное использование файлов Microsoft 365 graph для запроса контента, используемого вами и вашей командой, из Microsoft 365 приложений и его отображения в области темы.
Совет: Щелкните заголовки ниже, чтобы увидеть инструкции.
Поиск, вставка и повторное использование содержимого с помощью повторного использования файлов в Word
На вкладке Вставка в группе Коснитесь нажмите кнопку Повторное использование файлов.
В области "Поиск" показан список содержимого, которое вы и ваша группа использовали из приложений Office приложений (Word, Excel, PowerPoint), которые вы видели раньше.
Если там есть содержимое, которое вы хотите снова использовать, перейдите к действию 4.
Если вы хотите найти какое-то определенное содержимое, введите ключевое слово в поле поиска и нажмите клавишу ВВОД. В области Тематический поиск появится перечень рекомендованного содержимого из приложений Office (Word, Excel, PowerPoint), соответствующего ключевому слову.
В нижней части каждого документа, отображаемого в области темы, есть небольшая легенда. Легенда представляет фактическое количество объектов, рисунков, объектов SmartArt, таблиц, диаграмм или слайдов, присутствующих в каждом документе.
Выберите многоточие, чтобы выполнить одно из следующих действий:
Открыть в приложении
(приложении Office, например PowerPoint, Word или Excel);
Просмотреть все элементы
(при этом в области тематического поиска отображается все содержимое, которое можно повторно использовать для выбранного документа).
Вы можете выбрать любой результат в области тематического поиска, чтобы подробнее ознакомиться с содержимым, которое можно повторно использовать в документе.
Щелкните значок на любом графическом элементе SmartArt, объекте, изображении, графе, диаграмме, таблице или слайде, чтобы добавить его в документ.
Примечание: Функцию "Тематический поиск" также можно выбрать в контекстном меню. Щелкните правой кнопкой мыши потенциальное ключевое слово, которое хотите использовать для поиска, и выберите команду Вставить документ, чтобы увидеть рекомендации по содержимому в области тематического поиска.
Вы создали документ путем поиска и повторного использования содержимого из документов вашей команды, не выходя из Word. Можно отформатировать вставленное изображение, график, таблицу или диаграмму или переместить рисунки с помощью параметров разметки Word.
Если вы хотите найти какое-то определенное содержимое, введите ключевое слово в поле поиска и нажмите клавишу ВВОД. В области Тематический поиск появится перечень рекомендованного содержимого из приложений Office (Word, Excel, PowerPoint), соответствующего ключевому слову.
В нижней части каждого документа, отображаемого в области темы, есть небольшая легенда. Легенда представляет фактическое количество объектов, рисунков, объектов SmartArt, таблиц, диаграмм или слайдов, присутствующих в каждом документе.
Выберите многоточие, чтобы выполнить одно из следующих действий:
Открыть в приложении
Выбранный документ откроется в приложении (PowerPoint, Excel, Word).
Просмотреть все элементы
При этом в области тематического поиска отображается все содержимое, которое можно повторно использовать в выбранном документе.
Вы можете выбрать любой результат в области тематического поиска, чтобы подробнее ознакомиться с содержимым, которое можно повторно использовать в документе.
Примечание: Функцию "Тематический поиск" также можно выбрать в контекстном меню. Щелкните правой кнопкой мыши потенциальное ключевое слово, которое хотите использовать для поиска, и выберите команду Вставить документ, чтобы увидеть рекомендации по содержимому в области тематического поиска.
Excel для iPad Word для iPad PowerPoint для iPad Excel для iPhone Word для iPhone PowerPoint для iPhone Word для планшетов c Android Excel для планшетов с Android PowerPoint для планшетов с Android Excel для телефонов с Android Excel Mobile PowerPoint для телефонов с Android PowerPoint Mobile Word для телефонов с Android Word Mobile Еще. Меньше
Если вы ищете определенное слово или фразу в книге, презентации или документе, используйте значок Поиск.
Поиск на iPhone и iPad
Примечание: В настоящее время PowerPoint не поддерживает функцию поиска и замены.
Чтобы найти определенные слова или фразы в презентации, коснитесь значка Поиск в правом верхнем углу.
Введите слово или фразу, которые необходимо найти в презентации.
Чтобы перейти к другим параметрам поиска, коснитесь значка Параметры слева от поля поиска.
Отобразятся два параметра, которые можно включить или отключить. Если включен параметр С учетом регистра, результаты поиска будут точно соответствовать регистру введенного запроса. Если включен параметр Слово целиком, выполняется поиск только целого введенного слова, а не предлагаются слова, в которых запрос присутствует в виде части. Чтобы включить любой из этих параметров, переведите переключатель в положение Вкл.
После ввода запроса в поле поиска появится числовой индикатор, показывающий количество совпадений с искомыми словом или фразой в презентации.
Затем с помощью стрелок можно перемещаться между найденными словами в презентации.
Чтобы найти определенные слова или фразы, коснитесь значка Поиск в правом верхнем углу.
Введите слово или фразу, которые вы хотите найти в документа или книге.
После ввода запроса в поле поиска появится числовой индикатор, показывающий количество совпадений с искомыми словом или фразой в документе или книге.
Затем с помощью стрелок можно перемещаться между найденными словами в документе или книге.
Чтобы перейти к другим параметрам поиска, коснитесь значка Параметры слева от поля поиска.
Если вы хотите просто найти слово или фразу в документе или книге, выберите вариант Найти.
Чтобы найти слово или фразу и заменить их другими, выберите вариант Найти и заменить.
Чтобы найти все экземпляры слова или фразы и заменить их другими, выберите вариант Найти и заменить все.
Если включен параметр С учетом регистра, результаты поиска будут точно соответствовать регистру введенного запроса.
Если включен параметр Слово целиком, выполняется поиск только целого введенного слова, а слова, часть которых соответствует запросу, не предлагаются.
В Windows 10, Linux и macOS текстовые файлы можно с легкостью открыть при помощи Терминала ( Командной строки ) или стандартного редактора текста . Именно это дает возможность выполнять дальнейший поиск любого содержимого таких текстовых файлов без использования сторонних программных средств.
Поиском может быть охвачено множество файлов, однако для этого необходимо предварительно их открыть, а это может стать утомительным занятием. Но даже с популярными офисными инструментами для Windows 10, например такими, как Word или Microsoft 365, вы сможете найти текст только в текущем открытом документе и все.
Поиск определенного текста сразу в нескольких файлах
Очевидно, что текст вносится в файлы всевозможных форматов. Он не будет ограничен размещением только в документах DOC или DOCX . Электронные таблицы Excel, презентации PowerPoint также могут его содержать. Поэтому пользователям часто требуется найти конкретный файл по определенному содержимому.
Это можно осуществить следующим способом.
- Посетите сайт sourceforge.net и загрузите бесплатное приложение " Office Search ", которое не требует установки в систему.
- В самом верхнем поле "Что искать" напишите искомое слово или несколько, разделив их точкой с запятой.
- В поле "Где" выберите каталог.
- Если в нем есть вложенные папки, поставьте отметку для их активации.
- При желании найти файлы определенного типа, введите их расширение.
- Наконец, если вы ввели несколько слов, выберите опцию "Любое слово", "Все слова". Также можно установить "Соответствие регистру".
- Нажмите на кнопку "Поиск".Когда сканирование будет завершено, в окне результатов вы увидите все документы каталога, среди которых синим цветом и словом " Найдено " будут обозначены файлы с искомым содержимым. Вы можете дважды нажать на нужный, чтобы открыть его.
Какие типы файлов поддерживаются?
Office Search умеет работать со всеми популярными форматами: DOCX, XLSX, PPTX, RTF, TXT, CSV . Также допускается поддержка файлов, созданных в LibreOffice .
Заключение
Если вы сохранили документ, а потом забыли, как он называется, его содержимое — наилучший способ найти такой файл повторно. Поиск по тексту здесь имеет решающее значение. Что еще важно, такие файлы, в отличие от изображений, не относятся к тому типу, о содержании которых можно судить по миниатюре. Ведь они не имеют эскизов, отображаемых в Проводнике операционной системы. Спасибо за внимание!
Читайте также: