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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2010, 20:58   #1
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Вопрос Поиск в Excel+Word

Открываю документ Word в макросе Excel. Казалось бы, после этого мне должны быть доступны все объекты, методы и свойства VBA для Word. Так нет: использование Find приводит к ошибке. Конечно. я могу тупо, абзац за абзацем, перебрать содержимое Wordовского док-та и найти, что надо, но ведь хочется сделать это одной операцией типа Selection.Find , которая прекрасно работает, если изначально сидишь в Wordе, а не в Excelе. Угробил уйму времени. Помогите !!!
vfayans вне форума Ответить с цитированием
Старый 21.06.2010, 22:37   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от vfayans Посмотреть сообщение
Открываю документ Word в макросе Excel. Казалось бы, после этого мне должны быть доступны все объекты, методы и свойства VBA для Word. Так нет: использование Find приводит к ошибке. Конечно. я могу тупо, абзац за абзацем, перебрать содержимое Wordовского док-та и найти, что надо, но ведь хочется сделать это одной операцией типа Selection.Find , которая прекрасно работает, если изначально сидишь в Wordе, а не в Excelе. Угробил уйму времени. Помогите !!!
может я не прав....
но мне кажется надо в excel включить библиотеку microsoft word 12.0 object librari
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 21.06.2010 в 22:42.
R Dmitry вне форума Ответить с цитированием
Старый 22.06.2010, 01:06   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Казалось бы, после этого мне должны быть доступны все объекты, методы и свойства VBA для Word
Так оно и есть - все методы и свойства доступны.

В Вашем случае возможны 2 варианта:

1) ошибка в коде
2) использование в коде вордовских констант типа wdFindContinue, wdParagraph и т.д. при неподключенной библиотеке Word
(в этом случае Excel не знает, чему равны значения этих констант, и подставляет вместо них нули)

Покажите код - может, что и посоветуем.
EducatedFool вне форума Ответить с цитированием
Старый 22.06.2010, 01:07   #4
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Печаль microsoft word 12.0 object library

Цитата:
Сообщение от R Dmitry Посмотреть сообщение
может я не прав....
но мне кажется надо в excel включить библиотеку microsoft word 12.0 object librari
Увы, в том-то и дело, что подключение не спасло !
vfayans вне форума Ответить с цитированием
Старый 22.06.2010, 09:41   #5
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
Злость

увы! нет файла нет и ответа
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 22.06.2010, 14:52   #6
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Печаль Поиск в Excel+Word

В ZIP-файле - тестовые процедуры для FIND в Excel'е и Word'е, а также
снимок с экрана со списком подключённых библиотек.
Вложения
Тип файла: zip Test_FIND.zip (129.0 Кб, 22 просмотров)

Последний раз редактировалось vfayans; 22.06.2010 в 14:53. Причина: ошибочка в тексте
vfayans вне форума Ответить с цитированием
Старый 22.06.2010, 18:14   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А если так попробовать

Код:
Public Sub T_FIND()
Const ANNO = "Аннотация"

Dim DOC As Object, DOCS As Document, W As Word.Application
Dim path_ As String, FName As String
Set DOC = ThisWorkbook
path_ = DOC.Path
ChDir path_
Set W = New Word.Application
W.Visible = True
FName = path_ & "\Test_FIND.doc"  'файл, содержащий слово "Аннотация"
Set DOCS = W.Documents.Open(FName)
DOCS.Select

With W
'  поиск слова "Аннотация"

    With .Selection.Find
        .Text = ANNO
        .Execute MatchWholeWord:=False
    End With
End With
End Sub
Все работает
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 22.06.2010, 21:22   #8
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
По умолчанию

Нет слов. Огромное СПАСИБО!!!
Предварительно заменил (на 11-ую) 12 версию Wordовской библиотеки, которую VBA подцепил, когда я работал в Office 2007. Убедился в том, что всё работает и без DOCS.Select.
Кроме того, открывать Wordовский файл можно было и через CreateObject("Word.Application"), как у меня.
Но Set W = New Word.Application оказалось для меня воистину New .
А заработала эта штука благодаря W.Selection !!! Победа !!!
vfayans вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WORD из EXCEL maksim_serg Microsoft Office Excel 7 05.04.2010 13:22
Excel и Word Foxx Microsoft Office Excel 10 15.03.2010 17:30
из Excel в Word Svetlana85 Microsoft Office Word 8 17.01.2010 19:49
Из word в Excel Biosasha Microsoft Office Word 0 15.02.2007 22:32