Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2013, 13:16   #1
Nicko1622
 
Регистрация: 13.10.2013
Сообщений: 3
По умолчанию Поиск-Find значений из Буфера Обмена.

Поиск-Find значений из Буфера Обмена. Ввод переменной поиска
Находясь в Тотале - я копирую имя файла командой cm_CopyNamesToClip = W001610A.100
Ведётся лог файлов Log18.txt и надо найти в логе искомый файл. Как Это правильно сделать ?
Как ввести переменную в команду Find ?
Чтоб каждый раз искало то что в буф обмена находится.
[ .Text = (вставка из буфера) ]

Sub FindLog()
'
' FindLog Макрос
' Макрос записан 02.10.2013 Slinko&Ko

ChangeFileOpenDirectory "P:\AMIGO\LOG18\"
Documents.Open FileName:="amip18_i.log", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", _
Encoding:=1251
''
Selection.Find.ClearFormatting
With Selection.Find
'.Text = Clipboard.Text ' Вставляем W001610A.100 в текстовое поле содержимое буфера
.Text = Selection.Text ' Вставляем W001610A.100в текстовое поле содержимое буфера
вот тут переменная часто показывает =1 вместо имени файла напр:W001610A.100??? Ппочему так х-м-м :/ Selection.Text

.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
'Windows("amip18_i.log").Activate

....
Не знать - Опасно,
Знать много - слишком Опасно (А.Энштейт)

Последний раз редактировалось Nicko1622; 17.10.2013 в 13:47.
Nicko1622 вне форума Ответить с цитированием
Старый 17.10.2013, 14:21   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

возможно так (без API)
Код:
Sub FindLog()
'
' FindLog Макрос
' Макрос записан 02.10.2013 Slinko&Ko

Dim s1

 Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
 Selection.Paste
 Selection.WholeStory
 Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
 Selection.Copy
s1 = Selection.Range.Text
Debug.Print s1; "="
Word.ActiveDocument.Close False

ChangeFileOpenDirectory "c:\rab\"
Documents.Open FileName:="00.txt", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatText
'Format:=wdOpenFormatAuto, XMLTransform:="", _
Encoding:=1251
Debug.Print s1
Selection.Find.ClearFormatting
With Selection.Find
'.Text = Clipboard.Text ' Вставляем W001610A.100 в текстовое поле содержимое буфера
.Text = s1 ' Вставляем W001610A.100в текстовое поле содержимое буфера
'вот тут переменная часто показывает =1
'вместо имени файла напр:W001610A.100??? Selection.Text
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
'Windows("amip18_i.log").Activate
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 17.10.2013, 18:35   #3
Nicko1622
 
Регистрация: 13.10.2013
Сообщений: 3
По умолчанию

Даа, так работает нормально ,стабильнее.
А как бы обойтись без создания (сателитного) пустышки файла .
Вставка-копировать.
Возможно Это можно обойти (победить) путьом преобразования форматов.
Напр. Переназначить его снова в строковой.
Какая команда это делает??
Не знать - Опасно,
Знать много - слишком Опасно (А.Энштейт)
Nicko1622 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
очистка буфера обмена beegl Общие вопросы Delphi 21 04.01.2017 11:01
Hook буфера обмена rust-02 Общие вопросы Delphi 0 20.09.2010 19:21
Как подставить значение буфера обмена в функцию Cells.Find? Emirates Microsoft Office Excel 11 05.09.2010 20:10
Вставка из буфера обмена volonc Microsoft Office Excel 12 17.07.2010 19:04
Контроль буфера обмена AndrzejX Общие вопросы Delphi 8 20.02.2009 07:30