Semenalidery.com

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Word content find

VBA Content.Find в Word, Как вернуть значение справа от найденного текста

который просматривает все документы word в папке и возвращает ‘x’ в Столбцах, если найдено искомое значение. Имена столбцов-это документы в папке. Имена строк — это искомые строки.

Я хотел бы, чтобы процедура возвращала скорее значение или строку, которая находится в документе word справа или рядом с искомыми строками .

Это было бы отличным инструментом для сбора дат, значений счетов-фактур, имен и т. д. из неструктурированных данных в документах word в таблицу excel.

Полный код выглядит следующим образом:

Я не могу найти в сети или выяснить, как вернуть диапазон найденного текста, а затем смещать его, чтобы вернуть текст / значение вправо. Я знаю, что смещение существует в vba excel. Но как смещать диапазон найденной строки и возвращать значение, найденное в этом диапазоне смещения, в excel?

2 Ответа

Такой подход может сработать. Начните с инициализации объекта Range в диапазоне, который вы хотите найти

Тогда вместо With oDOC.Content.Find сделайте

Когда .Found = True , oFound будет перемещен в найденный текст. Затем вы можете переместить oFound на 1 слово с чем-то вроде:

Вы можете настроить Unit и Count в соответствии с вашими требованиями. В зависимости от ваших потребностей связанные методы объекта диапазона MoveEndUntil , MoveEndWhile , MoveStartUntil и MoveStartWhile могут дать лучшую функциональность. Проверьте эти и другие методы Range.Move здесь .

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

Заслуга принадлежит ксидгелю. Большое спасибо. Это работает как шарм.

Отредактированный код, в соответствии с направлением xidgel, может помочь другим, позвольте мне вставить его:

Похожие вопросы:

Можно ли получить индекс слова во время .найти? Я делаю.find.text чтобы получить слово, но мне нужно его положение индекса, а затем сохранить его в массиве. как правило, это так.

Я хочу прочитать прочитанный документ Word, найти любой текст, который помечен любым цветом, кроме черного, и удалить его. Как найти цвет текста в VBA?

Я новичок в VBA, и я пытаюсь собрать макрос в Excel. Этот макрос предназначен для поиска в документе Word определенной текстовой строки и возвращает номер страницы, где он находится (т. е. столбец.

Я новичок в VBA, поэтому я борюсь с тем, что кажется довольно простой задачей. У меня есть несколько строк текста в каждой ячейке в документе word. Каждая ячейка содержит категорию типа Science или.

У меня есть форма в Visio, которая является группой. Форма группы может иметь свой текст, отредактированный, и когда он редактируется, я хочу, чтобы одна из дочерних фигур сидела справа от текста в.

Я пытаюсь установить цвет текста с помощью Word VBA. Однако, похоже, что слово не принимает изменение цвета как change. Рассмотрим следующий код VBA например, после того, как я запустить его, слово.

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

В настоящее время я пишу макрос vba для word, который должен захватить все комментарии в документе и вернуть их в недавно созданный файл excel. Я почти закончил, но столкнулся с проблемой с.

Я хочу найти весь документ MSWord для текста с подстановочными знаками и восстановить найденные строки. что-то вроде того: Sub Macro1() Dim c As Range Set c = ActiveDocument.Contentsdf.

Мне нужно перебрать весь документ word и прочитать выделенный текст, чтобы я мог найти выделенное содержимое в моем файле XML и заменить его значением coresponding в файле XML. Я понял, как.

VBA: cоздание первой программы

В первой части статьи мы приступили к работе по исследованию языка Visual Basic for Applications, записали первую макрокоманду и начали изучение ее текста, а здесь оно будет продолжено.

Для выравнивания абзацев по ширине при записи макроса была вызвана функция замены Word. Ее вызов и был записан на языке VBA. Строка Selection.Find.ClearFormatting, видимо, предназначена для снятия параметров форматирования в окне замены — эквивалент нажатию кнопки «Снять форматирование», а строки Selection.Find. ParagraphFormat.Alignment = wdAlignParagraphLeft и Selection. Find.Replacement.ParagraphFormat. Alignment = wdAlignParagraphJustify определены для установки параметров того, что надо искать (выравнивание Left, т. е. «По левому краю»), и того, на что следует заменить (выравнивание Justify, т. е. «По ширине»). Команды впрямую соответствуют переводу слов с английского языка на русский: Selection — выделение, Find.Replacement — найти и заменить, ParagraphFormat — формат абзаца, Alignment — выравнивание, AlignParagraphJustify — равнять абзац по ширине. С оператором With мы уже знакомы, поэтому в следующем фрагменте речь пойдет об окне «Найти и заменить».

Легко догадаться, что параметры объекта Selection.Find (т. е. поиск по всему тексту или по его выделенной части) соответствуют параметрам окна «Найти и заменить»: .MatchWholeWord — искать целое слово; .MatchCase — учитывать регистр; .Text — заменяемый текст, а .Replacement.Text — сообщить, на что заменить. В рассматриваемом примере заменяется не текст, а форматирование, поэтому строки с этими параметрами заполнять не нужно.

Заметив в первых четырех строках повторение слов Selection.Find, можно счесть, что и их содержимое допускается включить в блок оператора With. Проверим, так ли это. Ниже последнего записанного макроса введем строку Sub experience1() — имя после Sub может быть любым, важно лишь, чтобы оно не совпадало с какой-либо командой VBA. Нажмем «Ввод» — через две строки редактор VBA поставит End Sub. С помощью команд «Копировать» и «Вставить» скопируем из нашей программы в текст нового макроса блок With Selection.Find, а затем переместим все строки, отражающие в макросе «работу» окна «Найти и заменить», в блок With Selection.Find, убрав при этом слова Selection.Find.

Читать еще:  Как использовать расширенный фильтр в excel

Теперь испытаем программу: откроем из общего набора еще один документ и, нажав клавишу , запустим новый макрос (курсор должен стоять внутри текста запускаемого макроса). Замена произошла так, как требуется, значит, можно сокращать текст программы описанным выше способом.

Раскроем значение еще нескольких интересных строк, смысл которых может вызвать вопросы: .Forward = True, .Wrap = wdFindContinue, .Execute Replace:=wdReplaceAll. В первой строке указывается направление поиска — вперед или назад (в последнем случае стояло бы значение False). Но что же скрывает вторая? Чтобы выяснить это, напишем еще один макрос с такой же заменой выравнивания, но с разными параметрами направления поиска (табл. 1).

Вполне очевидно, что наличие или отсутствие согласия на продолжение поиска не влияет на записываемый текст. Тогда как же отказаться от запроса на продолжение? Откроем текст макроса и поставим еще один знак «=» после команды .Wrap.

Теперь все ясно: чтобы отказаться от замены в конце документа, нужно обозначить параметр .Wrap как wdFindStop (табл. 2).

Осталось разобраться со строкой .Execute Replace:=wdReplace All. Поскольку слово Execute переводится как «исполнить», оно должно означать команду запуска поиска. Обратимся к справочной системе.

Из четырех предложенных ссылок — Dialog, Find, KeyBinding, MailMerge — нас интересует Find, поскольку мы работаем именно с этим объектом.

Так и есть, Execute запускает команду поиска и замены на выполнение: Runs the specified find operation. Returns True if the find operation is successful. Из текста справки выясняется, что все параметры поиска и замены можно задать также в скобках, а кроме того, записать в переменную результат выполнения команды — успешно ли прошел поиск (т. е. были ли найдены в данном сеансе работы команды «Найти и заменить» искомые элементы). В данном случае этого не требуется, однако запомнить ее все же стоит.

Продолжим изучение записанной макрокоманды.

Вопросов не вызывает — это команда сохранения активного документа.

А вот здесь уже потребуется редактирование. Это команда «Сохранить как. » — поскольку соответствующая опция Word задается в диалоговом окне, то в текст макроса помещаются все возможные параметры, как соответствующие установленным по умолчанию, так и нет: AddToRecentFiles — добавлять ли ярлык в папку Recent, EmbedTrueTypeFonts — внедрять ли шрифты TrueType. Наиболее интересны элементы FileName:=?Доклад1.rtf? и FileFormat:=wdFormatRTF — имя сохраняемого активного документа и его формат соответственно. Последний, Rtf, нас устраивает. А вот как быть с именем? Ведь у каждого файла оно должно быть свое, уникальное. Сначала попробуем из текста данной команды просто исключить строку с указанием имени. Создадим еще один модуль, скопируем туда полную команду ActiveDocument.SaveAs со всеми параметрами и удалим строку FileName:=?Доклад1.rtf?. После запуска программы ничего не произошло, однако она все же что-то делала, ведь и жесткий диск работал, и в течение нескольких секунд система была недоступна, да и сообщений об ошибках не появилось. Проверим, что делалось. Откроем в Блокноте или другом текстовом редакторе файл, который сохранялся, — в данном случае это файл «Доклад2.doc», — предварительно выгрузив его из Word.

Так вот в чем дело — файл был сохранен в формате Rtf, но под прежним именем и с расширением .doc. Но нас это не устраивает, поэтому имя пусть останется то же, а вот расширение должно быть .rtf.

А что произойдет, если запустить программу при активном и ни разу не сохранявшемся документе? Проделаем это. Активный документ получит имя Doc1.doc (или Doc2.doc, Doc3.doc — у кого как) и окажется либо в папке, где имело место последнее сохранение вручную какого-либо файла, либо в папке «Мои документы», предназначенной по умолчанию для файлов Word, либо в любой другой заданной вами (путь «по умолчанию» можно посмотреть, выбрав пункты «Сервис?Параметры?Расположение».

Таким образом, если программно сохранять ранее не сохранявшийся документ, не задавая ему имя и место расположения (впрочем, последнее можно указать, включив в пункт FileName полный путь к нему), то активный файл сохранится в папке и с именем по умолчанию (либо там, где был последний раз сохранен вручную какой-нибудь документ).

Но как же быть с нашей программой? Ведь требуется, чтобы все обрабатываемые файлы сохранялись со своими именами и с расширением .rtf. Попробуем получить имя активного документа программно. Создадим еще один макрос, введем в него параметр ActiveDocument, поставим точку и увидим, что среди возможных продолжений команды есть свойство Name.

Проверим работу. Модифицируем экспериментальную процедуру следующим образом.

dvorkin

Личный блог и сайт обо всем на свете

Макросы и функции в Word для быстрого форматирования.

Макросы в Word — это такая полезная штука, которую просто обязан знать каждый, кто много работает с текстами.

Читать еще:  Ms word xp расширение

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

Макросы — теория

Теперь немного теории. Как известно, в текстовом редакторе Word есть очень полезная функция «Найти и заменить« (вызывается через сочетание клавиш Ctrl+H или меню «Правка» -> «Заменить…» ), которой, к сожалению, пользуются не так часто. Но еще реже используют данную функцию в режиме «Подстановочные знаки« .

А между тем данное умение может принести неоценимую пользу. Свое знакомство с подстановочными знаками и их изучение можно начать со статьи Сергея Хозяинова (будет полезна для новичков).

Я же хочу рассказать о более конкретных случаях применения этого знания, а именно: использование замены с помощью подстановочных знаков и форматирование текста в макросах .

Макросы — это такие полезные штуки, которые позволяют автоматизировать часто выполняемые операции (в случае примера на видео, это форматирование текста). О способах записи и создания макросов можно найти тысячи статей на просторах Интернета. Нас же будет интересовать вариант, при котором макрос записывается вручную во встроенном в Word редакторе Visual Basic . Суть использования макросов мною основана на принципе конструктора: макрос состоит из набора кирпичиков-функций, которые заранее прописаны и могут размещаться в любой требуемой последовательности. Каждая же из функций является действием, либо набором действий, она имеет свое уникальное имя. В макросе же надо лишь указать имя функции для ее вызова.

Макросы — практика

[spoiler show=»Мой список функций»]Function Tire()
‘заменяет дефис в начале абзаца на тире
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «^p- »
.Replacement.Text = «^p^= »
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Function
Function Tire2()
‘заменяет дефис окруженный пробелами на тире
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = » — »
.Replacement.Text = » ^= »
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Function
Function Defis()
‘заменяет тире в начале абзаца на дефис
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «^p^=»
.Replacement.Text = «^p-»
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Function
Function Prob()
‘заменяет множественные пробелы на одиночный
‘удаляет множественные и одиночные пробелы в начале абзаца
‘удаляет множественные и одиночные пробелы в конце абзаца
‘удаляет знаки абзаца идущие до текста в начале документа
‘и знаки абзаца идущие после текста в конце документа
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.MatchWildcards = False
.Execute «^w», , , , , 0, , , 0, » «, 2
.Execute «^p^w», , , , 0, , , , 0, «^p», 2
.Execute «^w^p», , , , 0, , , , 0, «^p», 2
End With
If ActiveDocument.Paragraphs.Count > 1 Then
Do While ActiveDocument.Paragraphs.Last.Range.Text = Chr(13) And _
ActiveDocument.Paragraphs.Count > 1
ActiveDocument.Paragraphs.Last.Range.Delete
Loop
End If
Selection.HomeKey wdStory
While Selection.Paragraphs.First.Range.Characters.Count = 1
Selection.Paragraphs.First.Range.Delete
Wend
End Function
Function Format()
‘весь текст делает 14 размером TimesNewRoman
‘с 1,5 интервалом и выравнивает его по ширине
ActiveDocument.Content.Font.Name = «Times New Roman»
ActiveDocument.Content.Font.Size = 14
ActiveDocument.Content.ParagraphFormat.LineSpacing = LinesToPoints(1.5)
ActiveDocument.Content.ParagraphFormat.Alignment = wdAlignParagraphJustify
Selection.HomeKey wdStory
End Function
Function Format2()
‘весь текст делает 11 размером Arial
‘с 1,5 интервалом и выравнивает его по ширине
ActiveDocument.Content.Font.Name = «Arial»
ActiveDocument.Content.Font.Size = 11
ActiveDocument.Content.ParagraphFormat.LineSpacing = LinesToPoints(1.5)
ActiveDocument.Content.ParagraphFormat.Alignment = wdAlignParagraphJustify
Selection.HomeKey wdStory
End Function
Function Zagol()
‘делает заголовок (первый абзац) документа жирным
‘и выравнивает его по центру
ActiveDocument.Paragraphs(1).Range.Select
Selection.Font.Bold = True
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.HomeKey wdStory
End Function
Function Symb()
‘Подсчитывает количество символов в документе
‘и выводит сообщение
spacecount = ActiveDocument.Content.ComputeStatistics(Statistic:=wdStatisticCharactersWithSpaces)
MsgBox «В тексте содержится символов (включая пробелы) — » & spacecount & » »
End Function
Function Krasn()
‘Делает красный шрифт у выделенного слова
Selection.Font.Color = wdColorRed
End Function
Function Intjyr()
‘Выделяет жирным все вопросы «И:»
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «(^0013^0013И:)(*)(^0013)»
.MatchWildcards = True
.Forward = True
.Replacement.Text = «123″
.Replacement.Font.Bold = True
.Execute Replace:=wdReplaceAll
End With
End Function
Function One_to_Two()
‘Разделяет одно предложение на два (перед выполнением курсор ставить после запятой)
Selection.TypeBackspace
Selection.TypeText Text:=».»
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Range.Case = wdTitleSentence
End Function
Function Two_to_One()
‘Склеивает два предложения в одно (перед выполнением курсор ставить после точки)
Selection.TypeBackspace
Selection.TypeText Text:=»,»
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Range.Case = wdTitleSentence
End Function
Function Nimerstr()
‘Вставляет нумерацию страниц справа вверху
Selection.Sections(1).Headers(1).PageNumbers.Add PageNumberAlignment:= _
wdAlignPageNumberRight, FirstPage:=True
End Function
Function MastifTime()
‘Находит и заменяет тайм-коды в обычном формате (чч:мм:сс), на формат
‘требуемый для Мастифа (чч-мм-сс)
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «(^0013)(([0-9]@:[0-9]@:[0-9]@))»
.MatchWildcards = True
.Forward = True
.Replacement.Text = «12»
.Execute Replace:=wdReplaceAll
End With
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «:([0-9]@):»
.MatchWildcards = True
.Forward = True
.Replacement.Text = «-1-»
.Execute Replace:=wdReplaceAll
End With
End Function
Function Troetoch()
‘Заменяет три точки идущие подряд на знак троеточия
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «…»
.Replacement.Text = «…»
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Function
Function Tehnik()
‘Ищет в тексте технические надписи в скобках
‘если они прописаны без точки, то перед закрывающей скобкой ставится точка,
‘если они написаны (случайно) не курсивом, то выделяются им
Dim MyCollection As New Collection
With MyCollection
.Add («Аплодисменты»)
.Add («Говорят одновременно»)
.Add («Дефект записи»)
.Add («Дефект звука»)
.Add («Смена кадра»)
.Add («Обрыв записи»)
.Add («Техническая съемка»)
.Add («Техническая реплика»)
.Add («Технический разговор»)
.Add («Конец просмотра видеоролика»)
.Add («Начало просмотра видеоролика»)
.Add («Просмотр видеоролика»)
.Add («Возобновление тайм-кода»)
.Add («Остановка тайм-кода»)
.Add («Смена тайм-кода»)
.Add («Смех»)
.Add («Смеется»)
.Add («Кашель»)
.Add («Кашляет»)
End With
Dim i As Integer
For i = 1 To MyCollection.Count
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «((» & MyCollection.Item(i) & «))»
.MatchWildcards = True
.Forward = True
.Replacement.Text = «(1.)»
.Replacement.Font.Italic = True
.Execute Replace:=wdReplaceAll
End With
ActiveDocument.Content.Find.ClearFormatting
ActiveDocument.Content.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.Text = «((» & MyCollection.Item(i) & «.))»
.MatchWildcards = True
.Forward = True
.Replacement.Text = «(1)»
.Replacement.Font.Italic = True
.Execute Replace:=wdReplaceAll
End With
Next i
End Function
Sub Zamena()
‘ Комплекс последовательных функций при форматировании работ всех видов кроме Первого канала.
Prob
Tire2
Tire
Troetoch
Nimerstr
Tehnik
Symb
End Function
Sub Zamena2()
‘ Комплекс последовательных функций при форматировании работ Первого канала.
Prob
Defis
Tire2
Troetoch
Nimerstr
Tehnik
Symb
End Function
Sub ФОРМАТ()
Format
Prob
Tire2
Tire
Troetoch
Intjyr
Tehnik
Nimerstr
Zagol
Symb
End Sub
Sub МАСТИФ()
Format2
Prob
Intjyr
Tehnik
MastifTime
Nimerstr
Zagol
Symb
End Sub[/spoiler]

Читать еще:  Бесплатные шаблоны wordpress

Прописав это и сохранив в шаблоне «Normal.dot« можно получить доступ к этим макросам из любого документа. Вызывается окно выбора макросов горячей клавишей Alt+F8 .

Я предпочитаю использовать кнопки на панели инструментов. Поместить на нее кнопку и привязать к ней макрос очень легко. Об этом доступно написано в данной статье.

Данная статья затронула обширную тему, которая, прежде всего, нацелена на понимание и самостоятельное изучение вопроса. Поэтому более подробно расписывать не стал. Но всегда можно задать вопросы в комментариях.

Evgeniy Korshunov

Этот блог — мой персональный сетевой помощник + коллекция ссылок

среда, 11 июля 2012 г.

Заполнение документа WORD из 1С 7.7

Если есть шаблон .dot в файле FullNameFile, то:

Через закладки не понравилось — до заполнения не видно, как будет выглядеть форматирование документа.

Ворд = СоздатьОбъект ( » Word . Application» ) ; Ворд . Visible = 1 ; ДокВорд = Ворд . documents ; ТекДокВорд = ДокВорд . Open ( СокрЛП ( ПутьШаблона ) ) ; //путь к шаблону (dot) Содержание = ТекДокВорд . Content ; Содержание . Find . Execute ( «[НомерДок]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( НомерДок ) ) , 1 ) ; Содержание = ТекДокВорд . Content ; // это каждый раз! Содержание . Find . Execute ( «[ФИО]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( ФИО ) ) , 1 ) ;
ТекДокВорд . SaveAs ( ПодКакимИменемСохранитьФайл +».doc»);

С 2003 офисом точно работает, под другими не пробовал.

UPD. 10.03.2017
В 2013 офисе тоже работает, проверено :).
Для замены всех встречающихся значений шаблона в тексте, необходимо установить последний параметр в 2.
Содержание . Find . Execute ( «[ФИО]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( ФИО ) ) , 2 ) ;
Описание здесь и здесь.
Параметр — wdReplaceAll = 2;

18 комментариев:

В Word 2007 работает на ура

номердок=»роророророр»;
Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
путьшаблона=»d:dogovor.dot»;
ТекДокВорд=ДокВорд.Open(СокрЛП(ПутьШаблона)); //путь к шаблону (dot)
Содержание=ТекДокВорд.Content;
Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(СокрЛП(ПутьШаблона)); //путь к шаблону (dot)
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[nom_dog]»,0,0. «номердок»,2);
//Рез = текдокворд.Bookmarks.Exists(«nom_dog»);
// сообщить(рез);
Содержание=ТекДокВорд.Content; // это каждый раз!
фио=»фиофио»;
Содержание.Find.Execute(«[fio]»,0,0. «фио фио»,2);
//Содержание=ТекДокВорд.Content;
ПодКакимИменемСохранитьФайл=»d:dog» ;
ТекДокВорд.SaveAs(ПодКакимИменемСохранитьФайл+».doc»);

Пожалуйста, подскажите.
воспользовалась вашим кодом. Документ находит. Закладки документа находит. Но почему то не заполняет нужными реквизитами. То есть закладки fio и nom_dog остаются пустыми. Буду очень благодарна за помощь.

Сократил код по минимуму, попробовал на 2016 Word-е.

Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(«e:dog.dotx»);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[ФИО]»,0,0. «Иванов»,2);
ТекДокВорд.SaveAs(«e:dog.doc»);

Всё отработало как положено, было [ФИО], стало Иванов
Попробуйте ещё раз, только имя диска поправьте.

Word content find

Невидимка Vingrad’а

Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59

Бывалый

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

люди! помогите пожалуйста. та же проблема. немного другие симптомы. у меня лаконичнее сообщение об ошибке: метод файнд фейлед — и привет. вот код:

что интересно — так и когда я уже тут убрал меседжбокс для сообщения об ошибке — то вылетать и падать перестало — просто не делает ничего полезного :(. а стока та — в которой по идее сообщение об ошибке должно быть — так ода блин пустая :(. полтергейст полный.

или подскажите — может другой способ есть? мне нужно чтобы в библиотечке на вб6 делался поиск и замена — при невидимом ворде. нуили фиг с ним — можно уже и при видимом. меня убивают тут уже практически — а я на отладке одной строчки застрял на сутки.

да — что интересно: на машине с ХР-офисом падало и вылетало в любом варианте. а вот сейчас на -м пробую из ехе вот так:

Private Sub Command2_Click()
Dim wrd_app As Word.Application
Dim wrd_doc As Word.Document
Dim fnd As String, rpl As String
On Error Resume Next
Set wrd_app = GetObject(, «Word.Application»)
If Err.Number <> 0 Then
Set wrd_app = CreateObject(«Word.Application»)
Err.Clear
End If
On Error GoTo 0
Set wrd_doc = wrd_app.Documents.Open(App.Path + «test.doc»)

fnd = InputBox(«find:»)
rpl = InputBox(«replace:»)

wrd_doc.Content.Find.Execute FindText:=fnd, ReplaceWith:=rpl, Replace:=wdReplaceAll

так это блин работает. странно.
помогите плз разобраться с хренью этой.

Ссылка на основную публикацию
Adblock
detector