|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.02.2012, 11:04 | #1 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
Обновление поля в объекте Word
Подскажите как заставить excel обновлять поля во внедренном объекте word?
Например, если в этом объекте скопировать нужный фрагмент и сделать специальную вставку в excel (в ячейку) - то при правке этого фрагмента (в объекте) и последующего выхода из правки объекта происходит автоматическое обновление данных в ячейке. А вот если специальную вставку сделать именно в объекте (предварительно скопировав ячейку в excel) то никакого обновления автоматического не происходит. Хотя тут еще большая проблема есть - excel помнит только четкий путь до родительского документа - при копировании в другое место (либо переносе) вся эта настройка связей ломается Есть какие то решения? таких объектов word на листе excel около десятка и в каждый заходить и нажимать ctrl+a и потом F9 как то напряжно... Последний раз редактировалось smoky; 16.02.2012 в 11:23. |
17.02.2012, 21:57 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
В VBA Word обновление полей текущего документа производится так:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
23.02.2012, 11:58 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
Вроде все просто но... не получается... делаю
ActiveSheet.Shapes.Range(Array("Obj ect 31")).Fields.Update Пробовал через ThisWorkbook - тоже эффект с ошибкой: пишет что объект не поддерживает свойство или метод. Если не трудно - расскажите на пальцах как это сделать. Прикрепил файл с тем над чем бьюсь.. |
23.02.2012, 16:01 | #4 |
Пользователь Подтвердите свой е-майл
Регистрация: 13.05.2008
Сообщений: 65
|
Пока сделал вот так:
Код:
|
23.02.2012, 16:11 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Дело в том, что изначально внедренный документ (т.е. OLEObject.Object) программно недоступен. Чтобы получить к нему доступ, надо вызвать приложение, которое работает с документом. Это можно сделать с помощью метода OLEObject.Verb.
После этого OLEObject.Object становится доступен и можно использовать его свойства и методы, например .Fields.Update. Чтобы не Verb'ить каждый раз (это длительная процедура), я ввел переменную, которая сохраняет информацию о том, что это действие уже проделано. Пробуйте менять ячейку D2.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
23.02.2012, 16:13 | #6 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Не видел предыдущего поста - Вы сами додумались до Verb
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена текста в объекте 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 |