Как в Excel разорвать связи
Коммуникация — очень полезная функция Excel. На самом деле очень часто пользователям приходится использовать информацию из других файлов. Но в некоторых ситуациях они способны причинить больше вреда, чем пользы. Ведь, например, если вы отправите эти файлы по почте, ссылки окажутся неработоспособными. Сегодня мы более подробно поговорим о том, что делать, чтобы избежать такой проблемы.
Что такое связи в Excel
Ссылки в Excel чаще всего используются вместе с такими функциями, как ВПР, для извлечения информации из другой книги. Это может быть специальная ссылка, содержащая адрес не только ячейки, но и книги, в которой находятся данные. В результате эта ссылка выглядит так: = VLOOKUP (A2; ‘[Sales 2018.xlsx] Report’! $ A: $ F; 4; 0). Или, для упрощения представления, представьте адрес в следующей форме: = ‘Report [Sales 2018.xlsx]’! $ A1. Давайте посмотрим на каждый из соединительных элементов этого типа:
- [Продажи 2018.xlsx]. Этот фрагмент содержит ссылку на файл, из которого вам нужно получить информацию. Его еще называют источником.
- Отношение. Мы использовали следующее имя, но это не обязательно. Этот блок содержит имя листа, на котором вы хотите найти информацию.
- $ A: $ F и $ A1 — это адрес ячейки или диапазона с данными, содержащимися в этом документе.
Фактически, процесс создания ссылки на внешний документ называется ссылкой. После регистрации адреса ячейки, содержащейся в другом файле, содержимое вкладки «Данные» изменяется. А именно: становится активной кнопка «Изменить ссылки», с помощью которой пользователь может изменять существующие ссылки.
Суть проблемы
Как правило, дополнительных сложностей в использовании подключений не возникает. Даже если есть ситуация, когда ячейки меняются, все ссылки обновляются автоматически. Но если вы уже переименуете саму книгу или переместите ее на другой адрес, Excel станет бессильным. Таким образом выдает следующее сообщение.
Здесь у пользователя есть два возможных варианта действий в этой ситуации. Он может нажать «Продолжить», и тогда изменения не будут обновлены, или он может нажать кнопку «Изменить ссылки», с помощью которой он сможет обновить их вручную. После нажатия на эту кнопку появится дополнительное окно, в котором вы можете редактировать ссылки, указав, где в данный момент находится нужный файл и как он называется.
Кроме того, можно изменить ссылки, используя соответствующую кнопку, расположенную на вкладке «Данные». Пользователь также может узнать, что соединение разорвано, из-за ошибки #LINK, которая появляется, когда Excel не может получить доступ к информации, расположенной по определенному адресу, из-за того, что сам адрес недействителен.
Как разорвать связь в Эксель
Один из простейших способов разрешить описанную выше ситуацию, если вы не можете самостоятельно обновить расположение связанного файла, — удалить саму ссылку. Это особенно легко сделать, если документ содержит только одну ссылку. Для этого вам необходимо выполнить следующую последовательность действий:
- Откройте меню «Данные».
- Находим раздел «Подключения» и там — опцию «Изменить подключения».
- Затем нажмите «Отключить соединение».
Если вы собираетесь отправить эту книгу кому-нибудь еще, мы настоятельно рекомендуем сделать это раньше. Ведь после удаления ссылок все значения, содержащиеся в другом документе, будут автоматически загружены в файл, использованы в формулах, а вместо адреса ячейки информация в соответствующих ячейках будет просто преобразована в значения.
Как разорвать связь со всеми книгами
Но если количество ссылок становится слишком большим, их удаление вручную может занять много времени. Решить эту проблему за один раз можно с помощью специального макроса. Он находится в надстройке VBA-Excel. Вам необходимо активировать его и перейти на одноименную вкладку. Будет раздел «Ссылки», в котором мы должны нажать кнопку «Разорвать все ссылки».
Код на VBA
Если вы не можете активировать это дополнение, вы можете создать макрос самостоятельно. Для этого откройте редактор Visual Basic, нажав Alt + F11, и напишите следующие строки в поле ввода кода.
Sub UnlinkWorkBooks()
Тусклый WbLink
Тусклый я пока
Выберите Case MsgBox («Все ссылки на другие книги будут удалены из этого файла, а формулы, которые ссылаются на другие книги, будут заменены значениями». & VbCrLf & «Вы уверены, что хотите продолжить?», 36, «Разорвать ссылку?»)
Дело 7 «No
Выйти ниже
Конец выбора
WbLinks = ActiveWorkbook.LinkSources (Тип: = xlLinkTypeExcelLinks)
Если не пусто (WbLinks) Тогда
Для i = 1 для UBound (WbLinks)
ActiveWorkbook.BreakLink Имя: = WbLinks (i), Тип: = xlLinkTypeExcelLinks
Следующий
Другой
MsgBox «В этом файле нет ссылок на другие книги.», 64, «Ссылки на другие книги»
Конец, если
Конец подзаголовка
Как разорвать связи только в выделенном диапазоне
Время от времени количество ссылок очень велико и пользователь опасается, что после удаления одной из них он не сможет вернуть все без надобности. Но этой проблемы легко избежать. Для этого вам нужно выбрать диапазон, в котором нужно удалить ссылки, а затем удалить их. Для этого вам необходимо выполнить следующую последовательность действий:
- Выберите набор данных, в который вы хотите внести изменения.
- Установите надстройку VBA-Excel, затем перейдите на соответствующую вкладку.
- Затем найдите меню «Ссылки» и нажмите кнопку «Разорвать ссылки в выбранных диапазонах».
После этого все ссылки в выбранном наборе ячеек будут удалены.
Что делать, если связи не разрываются
Все описанное выше звучит неплохо, но на практике всегда есть какие-то нюансы. Например, может возникнуть ситуация, когда соединения не разорваны. В этом случае по-прежнему отображается диалоговое окно, что ссылки не могут быть обновлены автоматически. Что делать в этой ситуации?
- Во-первых, вам нужно проверить, содержится ли какая-либо информация в названных диапазонах. Для этого нажмите комбинацию клавиш Ctrl + F3 или откройте вкладку «Формулы» — «Диспетчер имен». Если имя файла полное, вам просто нужно его отредактировать или удалить совсем. Перед удалением именованных диапазонов вам необходимо скопировать файл в другое место, чтобы вы могли вернуться к исходной версии, если вы сделаете что-то неправильно.
- Если вы не можете решить проблему, удалив имена, вы можете проверить условное форматирование. Вы можете ссылаться на ячейки из другой таблицы в правилах условного форматирования. Для этого нужно найти соответствующий пункт на вкладке «Главная», затем нажать кнопку «Диспетчер файлов».
Обычно Excel не предлагает возможности предоставить адрес других книг в условном форматировании, но это делается путем ссылки на именованный диапазон со ссылкой на другой файл. Обычно даже после удаления ссылки ссылка остается. Удалить такую ссылку не составит труда, потому что она фактически не работает. Поэтому ничего плохого не произойдет, если вы его удалите.
Вы также можете использовать функцию проверки данных, чтобы увидеть, нет ли ненужных ссылок. Ссылки обычно остаются, если используется тип проверки данных «Список». Но что делать, если ячеек много? Неужели нужно постоянно проверять каждую из них? Очевидно нет. В конце концов, это займет много времени. Поэтому необходимо использовать специальный код, чтобы сохранить его значимым образом.
Явный вариант
‘—————————————————————————————
Автор: The_Prist (Дмитрий Щербаков)
‘Профессиональная разработка приложений MS Office любой сложности
‘Проведение обучающих курсов в MS Excel
https://www.excel-vba.ru
‘info@excel-vba.ru
WebMoney — R298726502453; Яндекс.Деньги — 41001332272872
‘Сфера:
‘—————————————————————————————
Sub FindErrLink()
‘вам нужно посмотреть ссылку Data — Изменить ссылки на исходный файл
‘и напишите здесь ключевые слова в нижнем регистре (часть имени файла)
‘звездочка просто заменяет любое количество символов, поэтому вам не важно точное имя
Const sToFndLink $ = «* продажи за 2018 год*»
Dim rr As Range, rc As Range, rres As Range, s$
‘определить все ячейки с проверкой данных
В случае ошибки Продолжить Далее
Установите rr = ActiveSheet.UsedRange.SpecialCells (xlCellTypeAllValidation)
Если rr ничего, тогда
MsgBox «На активном листе нет ячеек с проверкой данных», vbInformation, «www.excel-vba.ru»
Выйти ниже
Конец, если
При ошибке Перейти к 0
‘проверить каждую ячейку на наличие соединений
Для каждого rc In rr
‘на всякий случай пропустим ошибки — это тоже может быть
‘но наши связи должны быть без них, и они обязательно будут найдены
s = «»
В случае ошибки Продолжить Далее
s = rc.Convalida.Formula1
При ошибке Перейти к 0
‘нашел — все собираем в отдельный ряд
Если LCase (s) как sToFndLink, то
Если ничего нет, то
Установите rres = rc
Другой
Установить rres = Union (rc, rres)
Конец, если
Конец, если
Следующий
‘если есть соединение, выберите все ячейки с этими элементами управления данными
Если ничего нет, то
rres.Select
‘rres.Interior.Color = vbRed’, если вам также нужно выделить цветом
Конец, если
Конец подзаголовка
вам нужно создать стандартный модуль в редакторе макросов, а затем поместить туда этот текст. Далее вызываем окно макроса с помощью комбинации клавиш Alt + F8, затем выбираем наш макрос и нажимаем кнопку «Выполнить». При использовании этого кода необходимо учитывать несколько моментов:
- Прежде чем искать ссылку, которая больше не актуальна, вы должны сначала определить внешний вид ссылки, по которой она была создана. Для этого зайдите в меню «Данные» и найдите пункт «Редактировать ссылки». Далее нужно посмотреть имя файла и указать его в кавычках. Например, вот так: Const sToFndLink $ = «* 2018 продажи*»
- имя можно написать не полностью, а просто заменить ненужные символы звездочкой. И в кавычках пишите имя файла строчными буквами. В этом случае Excel найдет в конце все файлы, содержащие эту строку.
- Этот код может проверять ссылки только на текущем активном листе.
- С помощью этого макроса вы можете выбрать только найденные ячейки. Придется удалить все вручную. Это преимущество, потому что вы можете все перепроверить.
- Вы также можете выделить ячейки специальным цветом. Для этого удалите апостроф перед этой строкой rres.Interior.Color = vbRed
Обычно после выполнения действий, описанных в приведенных выше инструкциях, ненужные ссылки больше не должны оставаться. Но если они есть в документе и ваша неспособность по той или иной причине их удалить (типичный пример — безопасность данных на листе), вы можете использовать другую последовательность действий. Эта инструкция действительна только для версий 2007 и более поздних версий.
- Сделайте резервную копию документа.
- Откроем этот документ с помощью архиватора. Вы можете использовать любой формат, поддерживающий формат ZIP, но WinRar, а также тот, который встроен в Windows, будет.
- В появившемся архиве нужно найти папку xl и открыть там externalLinks.
- В этой папке находятся все внешние ссылки, каждая из которых соответствует файлу формата externalLink1.xml. Все только пронумерованы, поэтому пользователь не может понять, что это за соединение. Чтобы разобраться, что за подключение, нужно открыть папку _rels и посмотреть ее там.
- Затем мы удаляем все определенные ссылки на основе того, что мы узнали из файла externalLinkX.xml.rels.
- Далее открываем наш файл с помощью Excel. Появится информация об ошибке, например «Ошибка в части содержания книги». Даём согласие. После этого появится другое диалоговое окно. Закрываем.
После этого все ссылки необходимо удалить.