Что нового

Поиск и выделение текста в Word файле

DOMINANT

Новичок
Сообщения
42
Репутация
0
Приветствую! Помогите конвертировать VBA макрос в Autoit, код ищет текст в документе и выделяет этот текст. В самом Word если запускать все работает отлично

Код:
Sub Test1()
Dim WordApp As Object
     
    Set WordApp = GetObject(, "Word.Application")
    WordApp.Visible = True
    
    ActiveDocument.Content.Select
    
    With Selection.Find
        .ClearFormatting
        .Text = "12345"
    End With
    
    If Selection.Find.Execute Then
        Selection.Select
    End If
End Sub

Вот так пытался не работает

Код:
$objWord = _Word_Create()
$empWord = _Word_DocOpen($objWord, @ScriptDir & "\тест.docx", 0, 0, 0, 1)
$empWord.Content.Select
With $empWord.Selection.Find
    .ClearFormatting
    .Text = "12345"
EndWith

If $empWord.Selection.Find.Execute Then
   $empWord.Selection.Select
EndIf
 
A

Alofa

Гость
Код:
#include <Word.au3>
$oWord = _Word_Create()
$oDoc = _Word_DocOpen($oWord, @ScriptDir & '\Test.docx')
$oRangeFound = _Word_DocFind($oDoc, '12345')
$oRange = _Word_DocRangeSet($oDoc, $oRangeFound)
$oRange.Select
 
Автор
DOMINANT

DOMINANT

Новичок
Сообщения
42
Репутация
0
Спасибо работает, но я хочу научиться работать встроенными методами в word и excel, чтобы в дальнейшем более тонкие и продвинутые вещи делать , и поэтому вопрос остаётся открытым:smile:
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
$empWord = ObjCreate("Word.Application")
$empWord.Visible = 1
$empWord.documents.Open(@ScriptDir & "\тест.docx").Content.Select
With $empWord.Selection
    .Find.Text = "12345"
EndWith

If $empWord.Selection.Find.Execute Then
        $empWord.Selection.Select
EndIf
 
Автор
DOMINANT

DOMINANT

Новичок
Сообщения
42
Репутация
0
Ура!!! :beer: hedji а как можно дополнительные опции посылать в VBA выглядит так
Код:
Selection.PasteAndFormat (wdFormatPlainText)
в скобках доп опция вот так пробовал, эта функция вставляет то что находится в буфере обмена как простой текст
Код:
$empWord.Selection.PasteAndFormat (wdFormatPlainText)
$empWord.Selection.PasteAndFormat = wdFormatPlainText
$empWord.Selection.PasteAndFormat = $wdFormatPlainText
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
DOMINANT [?]
а как можно дополнительные опции посылать в VBA выглядит так

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.






Добавлено:
Сообщение автоматически объединено:

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх