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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 11:04   #1
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
Вопрос Обновление поля в объекте Word

Подскажите как заставить excel обновлять поля во внедренном объекте word?
Например, если в этом объекте скопировать нужный фрагмент и сделать специальную вставку в excel (в ячейку) - то при правке этого фрагмента (в объекте) и последующего выхода из правки объекта происходит автоматическое обновление данных в ячейке. А вот если специальную вставку сделать именно в объекте (предварительно скопировав ячейку в excel) то никакого обновления автоматического не происходит. Хотя тут еще большая проблема есть - excel помнит только четкий путь до родительского документа - при копировании в другое место (либо переносе) вся эта настройка связей ломается
Есть какие то решения?

таких объектов word на листе excel около десятка и в каждый заходить и нажимать ctrl+a и потом F9 как то напряжно...

Последний раз редактировалось smoky; 16.02.2012 в 11:23.
smoky вне форума Ответить с цитированием
Старый 17.02.2012, 21:57   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

В VBA Word обновление полей текущего документа производится так:
Код:
activedocument.Fields.Update
В Excel, соответственно, вместо activedocument поставьте ссылку на внедренный документ Word.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.02.2012, 11:58   #3
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию

Вроде все просто но... не получается... делаю
ActiveSheet.Shapes.Range(Array("Obj ect 31")).Fields.Update
Пробовал через ThisWorkbook - тоже эффект с ошибкой: пишет что объект не поддерживает свойство или метод.
Если не трудно - расскажите на пальцах как это сделать.
Прикрепил файл с тем над чем бьюсь..
Вложения
Тип файла: zip Книга1.zip (19.3 Кб, 8 просмотров)
smoky вне форума Ответить с цитированием
Старый 23.02.2012, 16:01   #4
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию

Пока сделал вот так:
Код:
ActiveSheet.Shapes.Range(Array("Object 31")).Select
Selection.Verb Verb:=xlPrimary
Range("AJ3").Select
Работает, но передергивает объекты... хотелось бы исключить это и заставить работать фоново - без передергиваний
smoky вне форума Ответить с цитированием
Старый 23.02.2012, 16:11   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Дело в том, что изначально внедренный документ (т.е. OLEObject.Object) программно недоступен. Чтобы получить к нему доступ, надо вызвать приложение, которое работает с документом. Это можно сделать с помощью метода OLEObject.Verb.
После этого OLEObject.Object становится доступен и можно использовать его свойства и методы, например .Fields.Update.
Чтобы не Verb'ить каждый раз (это длительная процедура), я ввел переменную, которая сохраняет информацию о том, что это действие уже проделано.
Пробуйте менять ячейку D2.
Вложения
Тип файла: rar Книга1-1.rar (21.6 Кб, 23 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.02.2012, 16:13   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Не видел предыдущего поста - Вы сами додумались до Verb
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена текста в объекте Word shape.TextFrame.TextRange.Text DolgopolovaOlga Microsoft Office Word 10 08.11.2011 14:32
обновление поля Studentka_iz_ZP Microsoft Office Access 2 17.05.2011 17:10
Обновление поля формы Richard89 Microsoft Office Access 1 01.02.2011 16:21
Обновление поля со списком Fezdipekla Microsoft Office Access 5 17.04.2010 22:54
обновление blob поля artemavd БД в Delphi 2 31.07.2009 04:09