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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2016, 10:21   #1
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию Как удалить все связи в Word из макроса в Excel ?

Добрый день.
Буду очень признателен, если поможете.
Почти все сделал, осталось дело "за малым".

Полная задача следующая:
1) Все делается из макроса в Excel
2) В файле Word есть данные, связанные с открытым файлом Excel (через специальную ставку). Надо открыть и закрыть файл Word, что бы обновились связи. - не знаю другого способа обновить связи.
3)Но перед сохранением этого нового файла надо удалить все связи из новых файлов Word, что бы при следующем открытии случайно не поменялись данные.

Вот с 3 пунктом у меня и проблема.

Сделал следующее:

Код:
Sub ModWordCover()

Dim ActiveWorkbook_Path As String
Dim Folder_New As String
Dim NewName As String
Dim i As Long, lLastRow As Long

ActiveWorkbook_Path = ActiveWorkbook.Path
Folder_New = ActiveWorkbook_Path & "\Standart\"
NewName = Folder_New & "Book1.docx" 'путь и имя файла

' далее открываем и закрываем с сохранением файлы что бы связи обновились

Set wa = CreateObject("Word.Application") ' Создаем приложение Word
wa.Visible = True ' делаем Word видимым. надо ли?
Set WD = wa.Documents.Open(NewName) 'открываем файл

' далее удаляем все связи и сохраняем

' !!! СЮДА НАДО ВСТАВИТЬ КОД ПО УДАЛЕНИЮ ВСЕХ СВЯЗЕЙ В ФАЙЛЕ WORD
'    Selection.WholeStory
'    Selection.Fields.Unlink - не работает

WD.Close True 'закрываем файл с сохранением

End Sub
Нашел такой вариант
Код:
Dim oFld As Field 'Поле
 'Перебираем все поля в документе
  For Each oFld In ActiveDocument.Fields
    If oFld.Type = wdFieldLink Then oFld.Unlink 'Если поле является полем ссылки, то разрываем связь
  Next
Но этот кусок кода тоже выдает ошибку т.к. он для макросов в Word.
Буду очень признателен, если поможете решить проблему.
Вложения
Тип файла: rar Test123121.rar (23.0 Кб, 9 просмотров)
Нет ничего невозможного, главное верить в это.

Последний раз редактировалось Snekich; 19.08.2016 в 07:59.
Snekich вне форума Ответить с цитированием
Старый 19.08.2016, 23:34   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Кросс:
http://forum.msexcel.ru/index.php/topic,11473.0.html
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 20.08.2016, 15:53   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
wd.Range.fields.Unlink
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос связи Excel с Word eemil Microsoft Office Excel 16 22.01.2016 17:28
Связи excel c word Vladymyr17 Microsoft Office Excel 0 28.09.2009 15:52
Как удалить все строки в Excel содержащие.. Dux Microsoft Office Excel 15 11.09.2009 04:41
Excel. как удалить из таблицы все гиперссылки? и запретить что бы URL ими становились 9go Microsoft Office Excel 2 17.01.2009 10:19
Как создать новый файл Word из макроса Excel? Dorvir Microsoft Office Excel 12 08.07.2008 16:50