Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 6 ]
- YulyaS10
- рядовой
- Неактивен
- Зарегистрирован: 12.02.2010
- Сообщений: 4
Тема: Как изменить источник множества связей
Подскажите, пожалуйста, как можно решить эту проблему.
Были созданы связи ячеек Excel с Word с помощью копирования и специальной вставки. Но потом выяснилось, что после создания связей таким способом, при изменении названия Excel документа связи не обновляются.
Можно ли создать макрос, который автоматически изменял бы ссылки на файл при изменении названия документа?
Или, возможно, есть какой-либо другой способ? Так как связей много и заново всё связывать займет, думаю, немало времени 
Отредактировано YulyaS10 (12.02.2010 15:20:15)

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
- За сообщение: 1
Re: Как изменить источник множества связей
YulyaS10, попробуйте у себя такой макрос:
Sub ChangeLinks()
Dim oFld As Field 'Поле
Dim OldFileName As String 'Старое имя файла
Dim NewFileName As String 'Новое имя файла
Dim FieldCode As String 'Код поля
Dim ReplaceAllPath As Boolean 'Заменять весь путь к файлу или только имя
Dim StartPath As Integer, EndPath As Integer 'Начало и конец пути к файлу в коде поля
'Ввод старого имени файла
OldFileName = InputBox("Укажите старое имя файла с расширением в ссылке, которое нужно изменить", "Изменение ссылок", OldFileName)
If Len(OldFileName) = 0 Then Exit Sub
'Выбор нового файла
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Выберите новый файл, с которым должен быть связан документ"
.AllowMultiSelect = False
.ButtonName = "Выбрать"
.Filters.Clear
.Filters.Add "Таблицы Excel", "*.xls; *.xlsx"
If .Show Then NewFileName = .SelectedItems(1) Else Exit Sub
End With
'Если изменилось не только имя, но и местоположение, то можно заменить весь путь
ReplaceAllPath = MsgBox("Заменять весь путь? Нажмите ""Нет"", чтобы заменить только имя файла", vbYesNo + vbInformation, "Изменение ссылок") = vbYes
NewFileName = Replace(NewFileName, "\", "\\")
'Перебираем все поля в документе
For Each oFld In ActiveDocument.Fields
If oFld.Type = wdFieldLink Then 'Если поле является полем ссылки
FieldCode = oFld.Code.Text
If InStr(oFld.Code.Text, "Excel.Sheet") <> 0 And InStr(FieldCode, "\\" & OldFileName) <> 0 Then 'Если поле ссылается на лист Excel и на нужный файл
If ReplaceAllPath Then 'Если нужно заменить весь путь
StartPath = InStr(FieldCode, ":\\") - 2
EndPath = InStr(FieldCode, "\\" & OldFileName) + Len(OldFileName) + 2
FieldCode = Mid(FieldCode, 1, StartPath) & NewFileName & Mid(FieldCode, EndPath)
Else 'Если нужно заменить только имя файла
FieldCode = Replace(FieldCode, OldFileName, Mid(NewFileName, InStrRev(NewFileName, "\") + 1))
End If
End If
End If
oFld.Code.Text = FieldCode
Next
End Sub
Написал макрос, а потом вспомнил о стандартной возможности. Если вы работаете в Word 2003 и ниже, то зайдите в меню "Правка"→"Связи…", появится окно, а там уже разберётесь.
В Word 2007 это окно можно вызвать, зайдя в меню Office→"Подготовить"→"Изменить ссылки на файлы".
В Word 2010: вкладка "Файл"→"Сведения"→"Изменить связи с файлами"
Ну а макрос так, для разминки:)
Лучше день потерять — потом за пять минут долететь!

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Как изменить источник множества связей
Ну, тогда может и макрос сгодится:)
Лучше день потерять — потом за пять минут долететь!
- YulyaS10
- рядовой
- Неактивен
- Зарегистрирован: 12.02.2010
- Сообщений: 4
Re: Как изменить источник множества связей
viter.alex
Спасибо!!! Получилось=))))
да, я так пробовала делать, но просто связей много, а вручную можно изменить лишь одну связь за раз))
- YulyaS10
- рядовой
- Неактивен
- Зарегистрирован: 12.02.2010
- Сообщений: 4
Re: Как изменить источник множества связей
В следующий раз буду связи задавать по другому)))
Потому что у этого файла Excel постоянно и имя файла и путь меняются)))

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Как изменить источник множества связей
YulyaS10 пишет:вручную можно изменить лишь одну связь за раз
Нет! Можно выделить все связи и сменить источник для все сразу.
Лучше день потерять — потом за пять минут долететь!
Сообщений [ 6 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как изменить источник множества связей
Если вы владеете персональным компьютером или же вы счастливый обладатель ноутбука, работаете с документами много, либо время от времени, то, вероятнее всего, вы пользуетесь таким мощным редактором текста, как Microsoft Word. На портале о Microsoft Office Word вы узнаете про: запуск ворд макрос.
Возможно, у вас новейшая 10 версия, возможно, вы привыкли к троечке и не хотите менять. Но в любом случае 80 % пользователей используют лишь 20 % этой замечательной, колоссальной программы. На портале о Microsoft Office Word вы узнаете про: сохранить word в pdf.
А где познакомиться со всеми нюансами? Где узнать, как еще более оптимизировать работу? Приглашаем вас на форум сайта Ворд Эксперт, посвященный приложению Word целиком. На портале о Microsoft Office Word вы узнаете про: распознавания текста в word.
Вы можете зарегистрироваться на нашем портале и узнать много нового о такой, казалось бы, общеизвестной теме. Наш сайт о Microsoft Office Word даст ответ про: текст в ворде.
Пользователю форума будет предложена литература по всем интересующим его вопросам, а наиболее часто задаваемые вопросы будут вынесены в отдельный раздел. Наш сайт о Microsoft Office Word даст ответ про: как писать в таблице excel построчно.
Здесь вы научитесь автоматизировать свою работу и форматировать тексты, с помощью макросов.
Возможно, ваша проблема не нова и на нее найдется уже готовое решение, которое описано в соответствующем подразделе. На портале о Microsoft Office Word вы узнаете про: скачать шрифт calibri обычный курсив.
А если вы не нашли ответа, то можете оставить заявку в другом разделе, зубры «макросостроения» и акулы Ворда обязательно найдут решение вашей проблемы. На портале о Microsoft Office Word вы узнаете про: готовые таблицы в ворде.