|
|
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Добрый день! С VBA тесно не работал. Благодаря поиску по форуму много интересного почерпнул, но решения проблемы найти не удалось. В хелпе по VBA по OLE объектам тоже оч мало. Инета (кроме sql.ru) и соответствующих книг под рукой нет Имеется книга Excel и внедренный в нее документ Word Нужно во внедренном документе программно макросом Excel заменить текст на другой Пока только через запись макроса дополз до выделения объекта для редактирования Код: sql 1. 2. А как дальше перейти от ексельного объекта к вордовскому, чтобы там произвести необходимые действия и затем вернуться обратно? То бишь чтобы внедренный объект стал активным и я мог использовать Selection.Find.Replacement ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 14:34 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Не приложился документ почему-то. Для ясности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 14:35 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Как-то так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 18:14 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Если нужен IntelliSense, то можно установить ссылку на библиотеку "Microsoft Word #.# Object Library" и объявить переменную эксплицитно: Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 18:31 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
KL (XL), общая идея ясна. Библиотеку подключил вордовую - подсказки появились. И все равно не заводится - у OleObjects нет Object матерится здесь Код: sql 1. error '1004'; Невозможно получиться свойство Object класса OLEObject Уровень безопасности Низкий. Для записи все открыто вроде как. Word 2003 - может в настройках или версии чтот не так? или дело только в руках ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 09:55 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
RED32, ...Object.Object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 10:39 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
в смысле, Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 10:44 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
13-й кварталRED32, ...Object.Object Не понятно. Понятно то, что свойство Object есть у OLEObject, но не у OLEObjects, хотя OLEObjects("Object 1") должна бы возвращать именно его. Конструкции Set WDDoc = ThisWorkbook.Sheets("Лист1").OLEObjects("Object 1").Object Set WDDoc = ThisWorkbook.Sheets("Лист1").OLEObject("Object 1").Object Set WDDoc = ThisWorkbook.Sheets("Лист1").OLEObjects("Object 1").Object.Object и прочие выдают одно и тоже (( где я туплю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 10:49 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
13-й кварталв смысле, Код: vbnet 1. Ясн. Но пока ошибка та же. Ща попробую переделать с нуля, может с индексами или именами объекта и листов чтот не то ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 10:54 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Я чтот не понял из-за чего, но первоначальный код заработал. Видимо гдет с именами косячнул ... Спасибо всем за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 10:58 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
RED32, заработал, потому что OLEObject сначала должен побывать в активном состоянии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 11:08 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
Да, похоже без мигания не обойдешься. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Интересно, что с внедренным Excel объектом из-под PowerPoint у меня таких проблем не возникало :) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 21:22 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
KL (XL), обошлось без мигания. Просто у тебя активируется Оле каждый раз, а я один раз активирую при открытии документа и сразу сбрасываю. Потом переключение на Оле без активации производится и поиск/замена без мигания работают оч хорошо. Получилось то, что надо. ScreenUpdating кстати тоже не нужен получается, если не делать Active, то происходит все в фоне и не заметно. И еще раз спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 23:02 |
|
||
|
Редактирование внедренного объекта
|
|||
|---|---|---|---|
|
#18+
RED32KL (XL), обошлось без мигания. Просто у тебя активируется Оле каждый раз, а я один раз активирую при открытии документа и сразу сбрасываю. Потом переключение на Оле без активации производится и поиск/замена без мигания работают оч хорошо. Получилось то, что надо. ScreenUpdating кстати тоже не нужен получается, если не делать Active, то происходит все в фоне и не заметно. И еще раз спасибо Не за что. Но все равно хоть одноразовая активация при открытии книги и лучше, чем постоянная активация, все же это как-то малоэлегантно. Надо будет поискать еще способы на досуге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 00:00 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=111&tid=2176087]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
65ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 430ms |

| 0 / 0 |
