Хитрости »
30 Декабрь 2018 78765 просмотров
Невозможно разорвать связи с другой книгой
Прежде чем разобрать причины ошибки разрыва связей, не лишним будет разобраться что такое вообще связи в Excel и откуда они берутся. Если все это Вам известно — можете пропустить этот раздел
- Что такое связи в Excel и как их создать
- Как разорвать/удалить связи
- Что делать, если связи не разрываются
Иногда при работе с различными отчетами приходится создавать связи с другими книгами(отчетами). Чаще всего это используется в функциях вроде ВПР(VLOOKUP) для получения данных по критерию из таблицы, расположенной в другой книге. Так же это может быть и простая ссылка на ячейки другой книги. В итоге ссылки в таких ячейках выглядят следующим образом:
=ВПР(A2;'[Продажи 2018.xlsx]Отчет’!$A:$F;4;0)
или
='[Продажи 2018.xlsx]Отчет’!$A1
- [Продажи 2018.xlsx] — обозначает книгу, в которой итоговое значение. Такие книги так же называют источниками
- Отчет — имя листа в этой книге
- $A:$F и $A1 — непосредственно ячейка или диапазон со значениями
Если закрыть книгу, на которую была создана такая ссылка, то ссылка сразу изменяется и принимает более «длинный» вид:
=ВПР(A2;’C:UsersДмитрийDesktop[Продажи 2018.xlsx]Отчет’!$A:$F;4;0)
=’C:UsersДмитрийDesktop[Продажи 2018.xlsx]Отчет’!$A1
Предположу, что большинство такими ссылками не удивишь. Такие ссылки так же принято называть связыванием книг. Поэтому как только создается такая ссылка на вкладке Данные(Data) в группе Запросы и подключения(Queries & Coonections) активируется кнопка Изменить связи(Edit Links). Там же, как несложно догадаться, их можно изменить. В большинстве случаев ни использование связей, ни их изменение не доставляет особых проблем. Даже если в книге источники были изменены значения ячеек, то при открытии книги со связью эти изменения будут так же автоматом обновлены. Но если книгу-источник переместили или переименовали — при следующем открытии книги со ссылками на неё Excel покажет сообщение о недоступных связях в книге и запрос на обновление этих ссылок:
Если нажать Продолжить, то ссылки обновлены не будут и в ячейках будут оставлены значения на момент последнего сохранения. Происходит это потому, что ссылки хранятся внутри самой книги и так же там хранятся значения этих ссылок. Если же нажать Изменить связи(Change Source), то появится окно изменения связей, где можно будет выбрать каждую связь и указать правильное расположение нужного файла:
Так же изменение связей доступно непосредственно из вкладки Данные(Data)
Как разорвать связи
Как правило связи редко нужны на продолжительное время, т.к. они неизбежно увеличивают размер файла, особенно, если связей много. Поэтому чаще всего связь создается только для единовременно получения данных из другой книги. Исключениями являются случаи, когда связи делаются на общий файл, который ежедневного изменяется и дополняется различными сотрудниками и подразделениями, а в итоговом файле необходимо использовать именно актуальные данные этого файла.
Если решили разорвать связь, необходимо перейти на вкладку
Данные(Data)
-группа
Запросы и подключения(Queries & Coonections)
—
Изменить связи(Edit Links)
:
Выделить нужные связи и нажать
Разорвать связь(Break Link)
. При этом все ячейки с формулами, содержащими связи, будут преобразованы в значения вычисленные этой формулой при последнем обновлении. Данное действие нельзя будет отменить — только закрытием книги без сохранения.
Так же связи внутри формул разрываются, если формулы просто заменить значениями -выделяем нужные ячейки -копируем их -не снимая выделения жмем
Правую кнопку мыши
—
Специальная вставка(Paste Special)
—
Значения(Values)
. Формулы в ячейках будут заменены результатами их вычислений, а все связи будут удалены.
Более подробно про замену формул значениями можно узнать из статьи: Как удалить в ячейке формулу, оставив значения?
Что делать, если связи не разрываются
Но иногда возникают ситуации, когда вроде все формулы во всех ячейках уже заменены на значения, но запрос на обновление каких-то связей все равно появляется. В этом случае есть парочка рекомендаций для поиска и удаления этих мифических связей:
- проверьте нет ли каких-либо связей в именованных диапазонах:
нажмите сочетание клавиш Ctrl+F3 или перейдите на вкладку Формулы(Formulas) —Диспетчер имен(Name Manager)
Читать подробнее про именованные диапазоны
Если в каком-либо имени есть ссылка с полным путем к какой-то книге(вроде такого ‘[Продажи 2018.xlsx]Отчет’!$A1), то такое имя надо либо изменить, либо удалить. Кстати, некоторые имена в итоге могут выдавать ошибку #ССЫЛКА!(#REF!) — к ним тоже стоит присмотреться. Имена с ошибками ничего хорошего как правило не делают.
Настоятельно рекомендую перед удалением имен создать резервную копию файла, т.к. неверное удаление таких имен может повлечь неправильную работу файла даже в случае, если сами ссылки возвращали в итоге ошибочное значение. - если удаление лишних имен не дает эффекта — проверьте условное форматирование:
вкладка Главная(Home) —Условное форматирование(Conditional formatting) —Управление правилами(Manage Rules). В выпадающем списке проверить каждый лист и условия в нем:
Может случиться так, что условие было создано с использованием ссылки на другие книги. Как правило Excel запрещает это делать, но если ссылка будет внутри какого-то именованного диапазона — то диапазон такой можно будет применить в УФ, но после его удаления в самом УФ это имя все равно остается и генерирует ссылку на файл-источник. Такие условия можно удалять без сомнений — они все равно уже не выполняются как положено и лишь создают «пустую» связь. - Так же не помешает проверить наличие лишних ссылок и среди проверки данных(Что такое проверка данных). Как правило связи могут быть в проверке данных с типом Список. Но как их отыскать, если проверка данных распространена на множество ячеек?
Находим все ячейки с проверкой данных: выделяем одну любую ячейку на листе -вкладка Главная(Home) -группа Редактирование(Editing) —Найти и выделить(Find & Select) —Выделить группу ячеек(Go to Special). Отмечаем Проверка данных(Data validation) —Всех(All). Жмем Ок. После этого можно выделить все эти ячейки каким-либо цветом, чтобы удобнее было потом просматривать. Но такой метод выделит ВСЕ ячейки с проверками данных, а не только ошибочные.
Конечно, если вариантов кроме как найти руками нет и ячеек немного – просто заходим в проверку данных каждой ячейки(выделяем эту ячейку -вкладка Данные(Data) —Проверка данных(Data validation)) и смотрим, есть ли там проблемная формула со ссылками на другие книги.
Можно поступить более кардинально – после того как выделили все ячейки с проверкой данных идем на вкладку Данные(Data) —Проверка данных(Data validation) и для всех ячеек в поле Тип данных(Allow) выбираем Любое значение(Any value). Это удалит все формулы из проверки данных всех ячеек.
Но если ни удаление всех проверок данных, ни проверка каждой ячейки не подходит — я предлагаю коротенький код, который отыщет все такие ссылки быстрее и сэкономит время:Option Explicit '--------------------------------------------------------------------------------------- ' Author : The_Prist(Щербаков Дмитрий) ' Профессиональная разработка приложений для MS Office любой сложности ' Проведение тренингов по MS Excel ' https://www.excel-vba.ru ' info@excel-vba.ru ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' Purpose: '--------------------------------------------------------------------------------------- Sub FindErrLink() 'надо посмотреть в Данные -Изменить связи ссылку на файл-иточник 'и записать сюда ключевые слова в нижнем регистре(часть имени файла) 'звездочка просто заменяет любое кол-во символов, чтобы не париться с точным названием Const sToFndLink$ = "*продажи 2018*" Dim rr As Range, rc As Range, rres As Range, s$ 'определяем все ячейки с проверкой данных On Error Resume Next Set rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllValidation) If rr Is Nothing Then MsgBox "На активном листе нет ячеек с проверкой данных", vbInformation, "www.excel-vba.ru" Exit Sub End If On Error GoTo 0 'проверяем каждую ячейку на предмет наличия связей For Each rc In rr 'на всякий случай пропускаем ошибки - такое тоже может быть 'но наши связи должны быть без них и они точно отыщутся s = "" On Error Resume Next s = rc.Validation.Formula1 On Error GoTo 0 'нашли - собираем все в отдельный диапазон If LCase(s) Like sToFndLink Then If rres Is Nothing Then Set rres = rc Else Set rres = Union(rc, rres) End If End If Next 'если связь есть - выделяем все ячейки с такими проверками данных If Not rres Is Nothing Then rres.Select ' rres.Interior.Color = vbRed 'если надо выделить еще и цветом End If End Sub
Чтобы правильно использовать приведенный код, необходимо скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего вызвать макросы(Alt+F8 или вкладка Разработчик —Макросы), выбрать FindErrLink и нажать выполнить.
Есть пара нюансов:- Прежде чем искать ненужную связь необходимо определить её ссылку: Данные(Data) -группа Запросы и подключения(Queries & Coonections) —Изменить связи(Edit Links). Запомнить имя файла и записать в этой строке внутри кавычек:
Const sToFndLink$ = «*продажи 2018*»
Имя файла можно записать не полностью, все пробелы и другие символы можно заменить звездочкой дабы не ошибиться. Текст внутри кавычек должен быть в нижнем регистре. Например, на картинках выше есть связь с файлом «Продажи 2018.xlsx», но я внутри кода записал «*продажи 2018*» — будет найдена любая связь, в имени которой есть «продажи 2018». - Код ищет проверки данных только на активном листе
- Код только выделяет все найденные ячейки(обычное выделение), он ничего сам не удаляет
- Если надо подсветить ячейки цветом — достаточно убрать апостроф(‘) перед строкой
rres.Interior.Color = vbRed ‘если надо выделить еще и цветом
- Прежде чем искать ненужную связь необходимо определить её ссылку: Данные(Data) -группа Запросы и подключения(Queries & Coonections) —Изменить связи(Edit Links). Запомнить имя файла и записать в этой строке внутри кавычек:
Как правило после описанных выше действий лишних связей остаться не должно. Но если вдруг связи остались и найти Вы их никак не можете или по каким-то причинам разорвать связи не получается(например, лист со связью защищен)- можно пойти совершенно иным путем. Действует этот рецепт только для файлов новых форматов Excel 2007 и выше (если проблема с файлом более старого формата — можно пересохранить в новый формат):
- Обязательно делаем резервную копию файла, связи в котором никак не хотят разрываться
- Открываем файл при помощи любого архиватора(WinRAR отлично справляется, но это может быть и другой, работающий с форматом ZIP)
- В архиве перейти в папку xl -> externalLinks
- Сколько связей содержится в файле, столько файлов вида externalLink1.xml и будет внутри. Файлы просто пронумерованы и никаких сведений о том, к какому конкретному файлу относится эта связь на поверхности нет. Чтобы узнать какой файл .xml к какой связи относится надо зайти в папку «_rels» и открыть там каждый из имеющихся файлов вида externalLink1.xml.rels. Там и будет содержаться имя файла-источника.
- Если надо удалить только связь на конкретный файл — удаляем только те externalLink1.xml.rels и externalLink1.xml, которые относятся к нему. Если удалить надо все связи — удаляем все содержимое папки externalLinks
- Закрываем архив
- Открываем файл в Excel. Появится сообщение об ошибке вроде «Ошибка в части содержимого в Книге …». Соглашаемся. Появится еще одно окно с перечислением ошибочного содержимого. Нажимаем закрыть.
После этого связи должны быть удалены.
Если и это не помогло — скорее всего «битая» связь связана с ошибкой самого файла и лучшим решением будет перенести все данные в новый файл.
Так же см.:
Найти скрытые связи
Оптимизировать книгу
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Еще раз уточним…
На листе оригинальной книги есть именованные диапазоны. После копирования листа в новую книгу, эти диапазоны копи/пастятся в виде значений типа:
[vba]
Код
Range(«J11:J400»).Select
Selection.Copy
Range(«J11:J400»).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False
[/vba]
Остаются только формулы подведения итогов, которые уже не имеют именованных диапазонов. Но связь с книгой не могу порвать, пока не сохраню и не закрою все книги. А закрывать каждый раз не удобно.
Собственно задача, что бы полученный отчет не имел связей с книгой из которой его сделали. Поскольку его будут смотреть на другом компьютере, где нет файла оригинала. Каждый раз закрывать/открывать и удалять связи после создания отчета — слишком неудобно. А тем кому высылаются отчеты мешает запрос восстановления связей.
Кстати. Если после генерации такого отчета на полученном листе вообще удалить все данные (т.е. нет ни данных, ни формул), то все равно связи удалить нельзя, пока не сохранишь и не закроешь файлы….
Микки Пользователь Сообщений: 3280 |
Собственно говоря вопрос в чем при копировании листа разорвать ВСЕ связи на другие листы и книги -превратив данные в значения а формулы на листе все оставить как есть. |
Микки Пользователь Сообщений: 3280 |
Сорри файл Прикрепленные файлы
|
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#3 23.06.2016 08:56:23
|
||
Микки Пользователь Сообщений: 3280 |
Бахтиёр
спасибо, а сюда текущий лист вписывать «нужный_лист» |
JeyCi Пользователь Сообщений: 3357 |
#5 23.06.2016 09:01:51
ActiveSheet.Copy ? вы имели ввиду? — «с текущего»?… Бахтиёр Изменено: JeyCi — 23.06.2016 09:04:33 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#6 23.06.2016 09:12:03
Этот макрос: Теперь вам остаётся только сохранить новый лист куда-то под каким-то именем вручную (Эти движения тоже можно написать в макросе) |
||
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
Если Sheets(«нужный_лист»).Copy поменять на ActiveSheet.Copy то макрос проделает вышеописанные действия над тем листом, который был активным (в активной книге) в момент запуска макроса. Изменено: Бахтиёр — 23.06.2016 09:18:08 |
Микки Пользователь Сообщений: 3280 |
А макрос в эту книгу? Правильно? |
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
|
Микки Пользователь Сообщений: 3280 |
#10 23.06.2016 10:10:36 Да спасибо работает |
Разрыв связи с внешним ресурсом в Excel
Смотрите также как умудриться оставить If FormulaNew = CLL.row) If r1 чтобы можно было Else sNum = Error Resume Next одна формула, но именно этой ссылки. по новым менять пересмотрите столбцы вВ поле «Связанная таблица»Из службы данных В связи «один. может также использовать всех связей безПримечание: в этой ячейке FormulaNew & LinkNumber = 0 Then выбрать конкретный внешний
sNum & s For Each Sh
-
опять же неСложности в том и так далее. ней, чтобы определить выберите > ко многим» этаВыберите нужный режим. данные из другой вывода запроса. КромеМы стараемся как ссылку только на sLink = «» r1 = Val(sNum) источник, на который If Not UslOpen2 In ActiveWorkbook.Worksheets For на константу. А что не все Но в Excel содержит ли другой
-
On_Time_PerformanceИз Microsoft Azure Marketplace таблица должна бытьПримечание: книги. Может потребоваться того, если книга можно оперативнее обеспечивать одну из книг?
Разрыв связи
-
End If Sboy + CLL.row Else надо удалить ссылки. Then LinkPostFix2 = Each c In на =C2*B2, других функции поддерживают формула
2000 я не столбец в другом, а в поле. В мастере импорта частью с несколькими При наличии разорванных связей
-
проверить и удалить содержит несколько связей, вас актуальными справочными желательно чтобы это
-
= True ElseIf r2 = Val(sNum)С уважением, Гульмира LinkPostFix2 & s Sh.UsedRange.Cells If c.HasFormula
-
измененении не заметила. массивов. Т.е. если
-
-
нашел функции разрыва месте модели соответствующие «Связанный столбец (первичный
Удаление имени определенной ссылки
таблиц откроется домашняя элементами. В примере будет появляться оповещение эти типы связей. можно обновлять только материалами на вашем
-
была ссылка на Status = 0 + CLL.row EndKoGG End If End Then Call Links_To_Constants(c)То, что получилось
-
формула не поддерживает связи :(. Может значения. ключ)» —
-
страница Microsoft Azure с клиентами и
-
об этом.В Excel формула удаляется некоторые из них.
-
языке. Эта страница книгу, а не Then FormulaNew =
support.office.com
Управление обновлением внешних ссылок (связей)
If UslR =: Sub Заменить_ссылки_на_книгу_константами_в_активной_книге() Dim Select If sNum End If Next в результате выполнения формула массива - подскажет кто вПредположим, у вас естьFlightDate Marketplace. логикой операций со
Дополнительные сведения о внешних ссылках
Нажмите кнопку при замене наЗакройте все книги. Если переведена автоматически, поэтому значение. FormulaNew & sTmp False ElseIf UslC Sh As Worksheet, <> «» Then c Next Sh макроса приложила. то она должна чем тут загвозка? модель, которая содержит.
В разделе временем необходимо сначала
Обновить возвращаемое значение. Чтобы одна книга-источник будет ее текст может
kristina S ElseIf Status < Then LinkSuffix2 = c As Range,
Управление связями с другими книгами
Usl2 = False End Sub SubKoGG заменятся полностью значением, Может другие варианты продажи продукции поВ поле «Таблица» выберитеPrice выбрать таблицу продаж. Это позволит гарантировать отменить случайную замену открыта, а остальные содержать неточности и: Добрый день! Не 4 Then sLink LinkSuffix2 & Format(Val(sNum) MyFileName$, Arr With If j = Links_To_Constants(CLL As Range)
Ручное обновление всех (или никаких) связей в книге
-
: Макрос был рассчитан а если поддерживает какие есть? территории, и выBasicCalendarUS
-
(Цена) нажмите
-
клиентов, потому что наличие в книге формулы ее значением, закрыты, обновления не грамматические ошибки. Для понятно, что Вы = sLink & + CLL.Column) If
Частичное обновление связей с другими книгами вручную
-
Application.FileDialog(msoFileDialogFilePicker) .Title =
-
Len(LinkPostFix) Then Usl2
-
Dim FormulaOld$, FormulaNew$, на минимальное понимание — то массивом.Другой Excel ставить впоследствии импортируете демографические, а в полеFree
-
каждый день, скорее самых последних данных. немедленно после ввода будут одинаковыми.
нас важно, чтобы спрашиваете, может Вам sTmp ElseIf Status c1 = 0
«Укажите файл, связи = True Else
-
s$, sNum$, sTmp$, ситуации, что напримерПри этом необходимо
Управление выдачей запроса на обновление всех связей
в офисе нельзя, данные, чтобы узнать, «Столбец (чужой)» —
Отключение выдачи запроса на обновление связей данной книги и обновление связей вручную
(Бесплатно). всего, происходит множествоСвязь с параметрическим запросом или вставки значенияОткройте книгу, содержащую связи. эта статья была поможет настройка для = 4 Then Then c1 =
-
на который будут Select Case s sLink$, LinkPostFix$, LinkPostFix2$ нельзя использовать в чтобы ссылки на как мне объяснили есть ли корреляция
-
DateKeyВ разделе продаж.
-
нельзя обновить без
нажмите кнопкуЧтобы обновить связи, нажмите вам полезна. Просим панели быстрого доступа If InStr(1, sLink, Val(sNum) + CLL.Column заменены константами в Case «R», «C»,
Настройка обновления связей по запросу при открытии файла
Dim LinkNumber, i%, именах файлов, папок другие книги - лицензия есть только
Если никакие связи не создавались
-
между продажами и. НажмитеCategoryДля элемента открытия книги-источника.Отменить кнопку
-
вас уделить пару «разорвать связи» Прикрепленные MyFileName) > 0
-
Else c2 = формулах:» .InitialFileName = «:» Usl2 = j%, k%, n%, и листов пробелы
так и оставались на этот… демографическими тенденциями наОК(Категория) нажмитеСтолбец (чужой)Нажмите кнопку.Параметры секунд и сообщить, файлы Разорвать связь.jpg
Разрыв связей с источником
Then sLink = Val(sNum) + CLL.Column ActiveWorkbook.Path & «» True End Select r1&, r2&, c1&, и символы математических ссылками.Лузер каждой территории. Такдля создания связи.Science & Statisticsвыберите столбец, который
-
Не обновлятьВыделите ячейку с формулой.в области сведений помогла ли она (27.53 КБ) sLink & sTmp End If UslC
-
.AllowMultiSelect = False End If If c2&, rOffset&, cOffset&, операций. Сейчас адаптировал
-
Возможно нужно записать: Она там же, как демографические данныеОбратите внимание, что время
-
(Наука и статистика). содержит данные, относящиеся
-
-
.Если формула является о документе, а
-
вам, с помощьюbedvit Else Sboy =
= False End
-
.ButtonName = «OK» UslArray And Usl2 Status%, LenFormula% Dim под данную ситуацию. текущие значения ссылок где и в поступают из различных
-
задержки в настоящееНайдите к элементуЗакройте конечную книгу. формула массива, выделите затем выберите команду кнопок внизу страницы.
-
: Разорвать связи с True End If If sNum = .Filters.Add Description:=»Файлы Microsoft Then If UslR Usl As Boolean,Заменяются ссылки на
Замена одной формулы ее вычисляемым значением
в массив, а других офисах: Правка источников, то их время отличается дляDateStreamСвязанный столбец (первичный ключ)Откройте книгу-источник. диапазон ячеек, содержащихВключить это содержимое Для удобства также
-
нужными файлами -
Else LinkSuffix = «» Case «R» Excel», _ Extensions:=»*.xls; Then If r1
Usl2 As Boolean, все внешние книги.-
потом заменить эти — Связи -
-
таблицы первоначально изолированы каждого месяца.и выберите команду. Например, при наличииОткройте конечную книгу. формулу массива.. приводим ссылку на сохранятся нужные данные
-
LinkSuffix & sTmp UslR = True *.xl*» If .Show = 0 Then Sboy As Boolean,
-
-
В случае использования ссылки их текущими разорвать связь от остальной частиВ таблицеподписаться столбца даты в
-
Нажмите кнопкуВыбор диапазона, содержащего массив Закройте все книги.
-
оригинал (на английском в значениях, другие End If End LinkSuffix2 = LinkSuffix2 = 0 Then r1 = Val(sNum) UslArray As Boolean,
Если известно, что подключение к исходному файлу отсутствует
российского регионального разделителя значениями.Если имелся ввиду модели. Для интеграцииBasicCalendarUS. обеих таблицах необходимоОбновить
Если требуется работать с имеющимися данными, а не заменять их новыми
Откройте книгу, содержащую связи. языке) . (не разорванные) останутся
Если обновление в последний раз заняло слишком много времени
If If Sboy & s Case Exit Sub End Else r2 = _ UslOpen As дробной части [,]К сожалению не VBA, то демографических данных сперетащитеВведите свои учетные данные выбрать этот столбец.Щелкните любую ячейку вНа вкладкеВажно: на ссылках.
Если эта книга создана другим пользователем и вы не знаете, почему появился этот запрос
Then FormulaNew = «C» UslC = If MyFileName = Val(sNum) End If Boolean, UslOpen2 As неправильно обрабатывалась дробная смыслю в программировании.ActiveWorkbook.BreakLink Name:=»связанная_книга.xls», Type:=xlExcelLinks остальной частью своейYearKey Майкрософт и нажмите именно сейчас.Примечание:
Если вы каждый раз одинаково отвечаете на этот запрос и хотите, чтобы он больше не отображался
диапазоне массив.Данные KoDeX
FormulaNew & sLink True LinkSuffix2 = .SelectedItems(1) End With
UslR = False Boolean, UslR As часть — теперь И к томуАлексей модели вам нужнов область строк
-
Sign inВ полеМы стараемся какНа вкладкев группеКогда разорвать связь в: При разрыве одной
& sTmp Usl LinkSuffix2 & s Arr = Split(MyFileName, ElseIf UslC Then Boolean, UslC As правильно. же наверное это
-
: В том то будет найти столбец над пунктом(Вход). Откроется окноСвязанная таблица можно оперативнее обеспечиватьГлавнаяПодключения исходную книгу внешних
связи остается общее = False UslArray Case «:» LinkSuffix2
«») MyFileName = If c1 = Boolean FormulaOld =Со ссылками на очень сложная задача и дело, что в одной изMonthInCalendar предварительного просмотра данных.
-
выберите таблицу, содержащую вас актуальными справочнымив группенажмите кнопку ссылок, все формулы, значение в ячейке, = False Sboy
-
= LinkSuffix2 & «[» & Arr(UBound(Arr, 0 Then c1
-
CLL.FormulaR1C1 ‘ Стиль
диапазоны ячеек все раз разработчики Excel в Excel 2000 демографических таблиц, соответствующий
Если известно, что исходный файл доступен для подключения к нему
.Прокрутите вниз и нажмите хотя бы один материалами на вашемРедактирование
Если используется параметрический запрос
Изменить связи используйте значение из а я спрашиваю
-
= False Status s Case Else 1)) & «]»
-
= Val(sNum) Else
-
формул R1C1 FormulaNew
-
еще намного сложнее
-
не воплотили ее нет такого пункта тому, который вы
support.office.com
Создание связи между двумя таблицами в Excel
Теперь вы можете разделитьSelect Query столбец данных, которые языке. Эта страницанажмите кнопку. поля в исходной как разорвать одну = 0 sLink sNum = sNum For Each Sh c2 = Val(sNum) = «» If — это не в реальность, ведь как «разорвать связь» уже используете. Например, задержки прибытия по(Запрос на выборку). связаны с таблицей, переведена автоматически, поэтомуНайти и выделить
Из списка книге преобразуются в (две…, три…) связи, = «» LinkSuffix & s If In ActiveWorkbook.Worksheets For End If UslC InStr(1, FormulaOld, «.xl») обрабатывается. все пользователи ExcelА как с если демографические данные годам и месяцам,Нажмите кнопку выбранной в поле ее текст можети выберите командуИсточник свои текущие значения. но при этом = «» End Not UslOpen2 Then Each c In = False End > 0 ThenSub Заменить_ссылки_константами_в_активной_книге() Dim были бы рады VBA работать я организованы по регионам а также другим
ДалееТаблица содержать неточности иВыделить группу ячеек
выберите связанный объект, Например, если разорвать чтобы другая, допустим If Next i LinkSuffix2 = LinkSuffix2 Sh.UsedRange.Cells If c.HasFormula If sNum = LenFormula = Len(FormulaOld) Sh As Worksheet,
-
такой дополнительной опции не в курсе… и ваши данные значениям в календаре... грамматические ошибки. Для.
-
который необходимо изменить. связь с внешней
четвертая связь осталась Else FormulaNew = & s End
-
Then Call Links_To_Constants2(c, «» End If For i = c As Range, программы.slan о продажах определяютСоветы:Чтобы импортировать данные, выберите
-
В поле нас важно, чтобыВ диалоговом окнеДля выделения нескольких связей ссылкой = сумм ссылкой, а остальные FormulaOld End If If End Select MyFileName) End If
End If Next 1 To LenFormula Formula On LocalНигде в интернете: а у меня область продажи, то По умолчанию месяцы перечисленыBasicCalendarUSСвязанный столбец (первичный ключ) эта статья былаВыделить группу ячеек щелкните каждый связанный ([бюджет.xls] Годовой! C10: были значениями либо
-
If Trim(FormulaNew) = If sNum <> Next c Next j LinkPostFix = sTmp = Mid(FormulaOld,
Error Resume Next не смогла найти нет 2000го вы могли бы в алфавитном порядке.
-
и нажмитевыберите столбец, содержащий вам полезна. Просимустановите флажок объект, удерживая нажатой
-
C25), формула СУММ вообще их небыло. «=» Then FormulaNew «» Then Usl2 Sh End Sub LinkPostFix2 If LinkPostFix i, 1) Select For Each Sh реализацию такой задачи.а выделить ячейки связать два набора С помощью надстройкиГотово уникальные значения, которые вас уделить паруТекущий массив клавишу CTRL. заменяется вычисленное значениеkristina S = «» CLL.FormulaR1C1
-
= False If Sub Links_To_Constants2(CLL As Like «RC:R*» Then Case sTmp Case In ActiveWorkbook.Worksheets For На данном форуме со связими можете? данных, найдя общие Power Pivot вы. При быстром подключении соответствуют значениям в
-
секунд и сообщить,.Чтобы выделить все связи, — объекты, которые: непонятно, выборочно связи = FormulaNew End j = Len(LinkSuffix) Range, MyFileName$) Dim If r2 =
-
«‘» If Status Each c In есть ссылки наАлексей столбцы, такие как можете изменить порядок к Интернету импорт столбце, выбранном в помогла ли она
-
На вкладке нажмите клавиши CTRL+A. могут быть. Кроме
Дополнительные сведения о связях между таблицами в Excel
разрывать?
Sub Then Usl2 = FormulaOld$, FormulaNew$, s$, 0 Then r2
= 0 Then Sh.UsedRange.Cells If c.HasFormula
поиск подобных ячеек: ячейки выделяются, копируются,
государство, почтовый индекс сортировки так, чтобы займет около минуты. поле вам, с помощью
Примечания о связях
-
ГлавнаяНажмите кнопку того поскольку этойKoDeXГульмира True Else Select sNum$, sTmp$, sLink$, = r1 If Usl = True Then c.Formula = со ссылками на
-
я даже уже или регион, чтобы они отображались в После выполнения выСтолбец кнопок внизу страницы.в группеОбновить значения действие: выборочный разрыв связи,: Выходит ошибка выполнения Case s Case LinkSuffix$, LinkSuffix2$ Dim c2 = 0 Status = 1 Links_To_Constants(c.Formula) End If
-
внешние источники данных. все формулы убрал, обеспечить подстановку. хронологическом порядке. увидите отчет о. Для удобства такжеБуфер обмена.нельзя отменить пример во вложении. «1004» «R», «C», «:» LinkNumber, i%, j%, Then c2 = End If Case Next c NextОчень надеюсь на Вашу вставив только значения,Кроме совпадающих значений естьТаблица состоянии перемещения 73 414Нажмите кнопку приводим ссылку нанажмите кнопкуМожно настроить автоматическое обновление, рекомендуется сохранить версиюKoDeXApplication-defined or object-defined Usl2 = True k%, n%, r1&, c1 r1 = «[» If Not Sh End Sub
-
помощь. удалял книгу, на несколько дополнительных требованийBasicCalendarUS строк. НажмитеОК
-
оригинал (на английскомКопировать связей при запуске конечной книги в: неужели ни у error End Select End r2&, c1&, c2&, CLL.row: c1 =
Пример. Связывание данных логики операций со временем с данными по рейсам авиакомпании
Usl Then If Function Links_To_Constants(FormulaOld) AsПример в приложениях. которую этот лист для создания связей.должна быть открытаЗакрыть. языке) .. или после запуска. качестве резервной копии. кого нет никаких
-
Выполнение макроса останавливается If If UslArray rOffset&, cOffset&, Status%, CLL.Column ElseIf LinkPostFix
-
Status = 0 String Dim FormulaNew$,Заранее спасибо, ссылается. Проблема вЗначения данных в столбце в окне Power.Примечания о связяхВы применяли функцию ВПР,Нажмите кнопку
-
Предупреждение:Если вы используете диапазона идей??? на строке And Usl2 Then
-
LenFormula% Dim Usl Like «R*C:*» Then Then Status = sTmp$, sLink$ DimС уважением,Гульмира
-
том, что он подстановки должны быть Pivot.Чтобы импортировать второй наборПример. Связывание данных логики
-
чтобы переместить данныеВставить Этот режим влияет на внешних данных, параметраvikttur
-
CLL.FormulaR1C1 = FormulaNew If UslR Then As Boolean, Usl2
-
If c2 = 1 End If LinkNumber, i%, Usl
-
KoGG все равно постоянно уникальными. Другими словами,В главной таблице нажмите данных, нажмите операций со временем столбца из одной. всех пользователей книги. в запросе могут: Есть. Но неНа формуле =СЧЁТЕСЛИ(‘D:Мои If r1 =
-
As Boolean, Sboy 0 Then c2 If Status > As Boolean, Sboy: Sub Заменить_ссылки_константами_в_активной_книге() Dim спрашивает обновление, можно столбец не можетСортировка по столбцу
-
Получение внешних данных с данными по таблицы в другой?Нажмите стрелку рядом с Если отключить обновление
-
использовать данные из по теме. документы[Книга на которую 0 Then r1 As Boolean, UslArray
-
= c1 c1 3 Then UslOpen As Boolean, Status%, Sh As Worksheet, от него отказаться, содержать дубликаты. В
-
. > рейсам авиакомпании
-
Так как в кнопкой связей и выдачу
-
другой книги. ВыИз правил: ссылки.xls]Лист1′!$B$3:$B$8;»>1″) = Val(sNum) Else As Boolean, _ = CLL.Column ElseIf = True End LenFormula% FormulaNew = c As Range, но все равно модели данных нулиВ поле «Сортировать» выберитеИз службы данных»Могут потребоваться связи между Excel теперь естьПараметры вставки запроса, пользователи этой
-
можете обнаружить иkodexНаверное нужно чтобы r2 = Val(sNum) UslOpen As Boolean, LinkPostFix Like «RC*:*» If Case «.» «» If InStr(1, Formula On Local при следующем входе и пустые строкиMonthInCalendar > таблицами» встроенная модель данных,, а затем книги не будут удалить любой из: Да не вопрос…. выполнение макроса продолжалось End If UslR UslOpen2 As Boolean, Then If r2 If Status = FormulaOld, «[«) > Error Resume Next
-
он опять его эквивалентны пустому полю,.Из Microsoft Azure MarketplaceШаг 1. Определите, какие таблицы функция ВПР устарела.
-
выберите команду знать, что данные этих типов связей.и все же, пропуская подобные формулы = False ElseIf UslR As Boolean, = 0 Then 1 Then Status 0 Then Usl For Each Sh
-
запрашивает… которое является самостоятельнымВ поле «По» выберите. указать в связи Вы можете создать
-
Значения устарели.На вкладке какое-нить решение есть (оставляя их как UslC Then If UslC As Boolean
-
r2 = r1 = 2 End = False Status In ActiveWorkbook.Worksheets ForGuest значением данных. Это
-
MonthOfYearВ разделеШаг 2. Найдите столбцы, которые связь между двумя.На вкладкеДанные частичного (выборочного) разрыва
-
есть). c1 = 0 FormulaOld = CLL.FormulaR1C1 r1 = CLL.row If Case «]» = 0 Sboy Each c In: Принеси файл к
-
означает, что не.Type могут быть использованы
-
таблицами на основеНажмите кнопкуДанныев группе связей в ЭКСЕЛЬ????Подобные пропущенные формулы Then c1 = ‘ Стиль формул
End If If If Status = = False LenFormula Sh.UsedRange.Cells If c.HasFormula тому у кого
может быть несколькоСводная таблица теперь сортирует(Тип) нажмите для создания пути совпадающих данных вНе обновлятьв группеПодключенияXXXXXL
-
можно будет потом Val(sNum) Else c2 R1C1 FormulaNew = LinkPostFix Like «*:RC» 2 Then Status
-
= Len(FormulaOld) For Then c.FormulaR1C1 = есть Excel 2003-2007
-
нулей в столбце каждую комбинацию «месяцData
-
от одной таблицы них. Затем можно. Обновление из источника
Подключениянажмите кнопку: Всем доброго дня. заменить вручную. = Val(sNum) End «» If InStr(1, Then r2 = = 3 Else i = 1 Links_To_Constants(c.FormulaR1C1) End If удали связи сохрани подстановок. и год» (октябрьДанные). к другой создать листы Power при отсутствии подключения
«Могут потребоваться связи между таблицами»
нажмите кнопкуИзменить связи Админ, точно такуюС уважением, Гульмира If UslC = FormulaOld, MyFileName) > CLL.row: c2 = Sboy = True
To LenFormula sTmp Next c Next и бегом обратноТипы данных столбца подстановок 2011, ноябрь 2011)В разделеВы узнаете, существуют ли View или сводные к нему невозможно.Изменить связи.
Шаг 1. Определите, какие таблицы указать в связи
же тему разместилAlenaZ False End If 0 Then LenFormula CLL.Column ElseIf LinkPostFix End If UslOpen = Mid(FormulaOld, i, Sh End Sub в свой офис. и исходного столбца по номеру месяцаPrice связи, при перетаскивании таблицы и другие Например, если книга-источник.Примечание: у формулистов, предполагаю: Добрый день форумчане! sNum = «»
= Len(FormulaOld) For Like «*:R*C» Then = False Case 1) Select Case Function Links_To_Constants(FormulaOld) As Думаю должно получиться! должны быть совместимы. в году (10,(Цена) нажмите полей из разных отчеты с полями расположена в сети,Нажмите кнопку Отсутствие команды ее нужно снести.Нужна ваша помощь. End If End i = 1 c2 = CLL.Column «!» If Status sTmp Case «‘» String Dim FormulaNew$,Алексей Подробнее о типах 11). Изменить порядокFree таблиц в список из каждой таблицы, а подключение кЗапрос на обновление связейИзменить связиу кого какие Есть много файлов. If Next j To LenFormula sTmp ElseIf LinkPostFix Like = 3 Then If Status = sTmp$, sLink$ Dim
Шаг 2. Найдите столбцы, которые могут быть использованы для создания пути от одной таблице к другой
: Уже проверял - данных см. в сортировки несложно, потому(Бесплатно). полей сводной таблицы. даже если они сети отсутствует..означает, что файл есть соображения по
В них есть LinkSuffix = LinkSuffix2 = Mid(FormulaOld, i, «*:RC*» Then r2 Status = 4 0 Then Usl LinkNumber, i%, Usl этот вариант работает, статье Типы данных что каналНайдите Если вам не получены из различныхНажмите кнопкуВыберите нужный режим. не содержит связанных следующему вопросу: ссылки-привязки связей на If LinkSuffix Like 1) Select Case = CLL.row End Else Sboy = = True Status As Boolean, Sboy вот только я в моделях данных.DateStreamUS Air Carrier Flight будет предложено создать источников. Например, еслиНе обновлятьПримечание: данных.Условие: В одну другие книги. Раньше «RC:R*» Then If
sTmp Case «‘» If If UslArray True End If
-
= 1 End As Boolean, Status%, создал этот файлПодробнее о связях таблицпредоставляет все необходимые Delays связь, то в у вас есть. Даже если запретить ExcelВ списке ячейку, допустим B3 эти связи были r2 = 0
-
If Status = Then FormulaNew = Case «R» If If Case «[« LenFormula% FormulaNew = для дальнейших работ см. в статье
столбцы для работыи нажмите Excel уже есть данные о продажах
Нажмите кнопку
support.office.com
Excel не разрывает связь с внешней книгой (Формулы/Formulas)
выдавать запрос наИсточник идут связи с нужны. А теперь Then r2 = 0 Then Usl FormulaNew & «{« Status = 4 If Not Usl «» If InStr(1, и перспектива каждый Связи между таблицами этого сценария. ЕслиSelect сведения, необходимые для
клиентам, вам можетНе обновлять обновление связей, пользовательвыберите связь, которую
трех книг, при часть книг были r1 If c2
= True Status If r2 < Then Status =
Then Status = FormulaOld, «[«) >
раз выбегать из в модели данных. вы используете другую(Выбрать). связи данных. потребоваться импортировать и. Если не требуется будет получать сообщения
требуется разорвать. разрыве связи хотя
удалены(т.к. перестали быть
= 0 Then
= 1 End r1 Then k 5 End If
1 End If 0 Then Usl офиса для обработки
К началу страницы
таблицу логики операцийПрокрутите вниз и нажмите
Создание связей подобно использованию связать данные логики
получение текущих данных,
о наличии разорванныхДля выделения нескольких связанных
бы одной из нужными данные из c2 = c1
If Case «[« = r2: r1
Case «C» If Case «]» If = False Status ведет к потереrogert со временем, вашиSelect Query команд vlookup. Необходимы операций со временем,
можно сэкономить время, связей объектов, удерживайте нажатой
excelworld.ru
Как в Excel 2000 можно разорвать связь с листом?
этих книг, в них). И теперь r1 = CLL.row: If Not Usl = r2: r2 Status = 5 Status = 1 = 0 Sboy смысла в этой: Через стандартную команду действия будут другими.(Запрос на выборку). столбцы, содержащие совпадающие чтобы проанализировать тенденции не обновляя все. клавишу CTRL и ячейке В3 остается при открытии файла c1 = CLL.Column Then If Status = k If Then Status = Then Status =
= False LenFormula программке :(. «Разорвать связь» вПо мере добавления полейНажмите кнопку
данные, так что продаж по годам связи. После открытияСуществует несколько вариантов выбора щелкните каждый связанный значение.
выдаёт ошибку при ElseIf LinkSuffix Like
= 0 Then
c2 < c1 6 End If 2 End If = Len(FormulaOld) ForМожет кто знает меню данные, ничего
в сводную таблицуДалее Excel может создавать
и месяцам. книги нажмите на в диалоговом окне
объект.Вопрос: Как разорвать
обновлении связей. И «R*C:*» Then If Status = 1 Then k = Case «:» If Case «!» If i = 1 вариант попроще? не происходит, связь вы получите уведомление. перекрестные ссылки дляВсе таблицы в книге вкладкеЗапрос на обновление связейЧтобы выделить все связи,
одну (две, …) приходится в ручную c2 = 0 End If If c2: c1 = Status = 6 Status = 2 To LenFormula sTmp
slan с внешней книгой о необходимости связиНажмите строк из одной указываются в спискахДанные. нажмите клавиши CTRL+A. связи, при этом разрывать связи с Then c2 =
Status > 3 c2: c2 =
Then UslArray = Then Status = = Mid(FormulaOld, i,
: выбегать — это как висела так между таблицами, чтобы
Готово таблицы на строки
полей сводной таблицыв группеНа вкладке
Щелкните элемент в ячейке В3
теми книгами , c1 c1 = Then UslOpen =
k For k True End If 3 Else Sboy 1) Select Case
надеюсь образно? и висит. И разобраться с полями,для импорта данных. другой таблицы. В
и Power View.ПодключенияДанныеРазорвать
1)_осталась ссылка на которые были удалены, CLL.Column ElseIf LinkSuffix True End If
= r1 To Case «-» If = True End sTmp Case «‘»Алексей
из списка связей выбранными в сводной При быстром подключении
примере с логикойПри импорте связанных таблицкнопку
в группе.
книгу не разорванной
и теперь не
Like «RC*:*» Then Case «.» If
r2 For n Not UslOpen Then
If Case «:»
If Status =
: {quote}{login=slan}{date=30.01.2008 03:49}{thema=}{post}выбегать - в том же таблице. к Интернету импорт операций со временем
из реляционной базыИзменить связиПодключенияЕсли ссылка используется определенный связи, разорванные связи
planetaexcel.ru
Разрыв внешних связей без исчезновения формул
существуют. Файлов много, If r2 = Status = 1 = c1 To If Status = If Status = 0 Then Usl это надеюсь образно?{/post}{/quote меню данные -Хотя Excel может подсказать
займет около 15 минут. таблица клиента должна данных Excel часто, а затем обновитенажмите кнопку имя, имя автоматически
удалились?; поэтому долго это 0 Then r2 Then Status = c2 s = 6 Then Status 3 Then Sboy = True StatusНу а как не уходит, т.е.
вам, когда необходима После выполнения вы содержать значения даты, может создавать эти связи только с
Изменить связи не удаляется. Может2)_осталась ссылка на в ручную удалять. = r1 r1 2 End If
sLink & «R» = 7 ElseIf = True End = 1 End поступать? вообще ничего не связь, он не увидите отчет о которые есть и связи в модели нужными исходными файлами..
потребоваться удалить имя книгу не разорваннойМожно ли как = CLL.row End Case «]» If & Format(k) & Status > 4 If Case «
If Case «[«Постом выше к
происходит когда щелкаешь
может подсказать, какие
состоянии перемещения 2 427 284
в таблице логики данных, формируемой вНажмите кнопкуНажмите кнопку также, выполнив следующие связи, разорванные связи то сделать макрос If If LinkSuffix Status = 2 «C» & Format(n) Then Sboy = «, «+», «-«, If Not Usl стати то же «разорвать связь». таблицы и столбцы строк. Нажмите операций со временем. фоновом режиме. ВНе обновлятьЗапрос на обновление связей действия: остались значениями? и с помощью Like «*:RC» Then Then Status = LinkNumber = ExecuteExcel4Macro(s) True End If «/», «*», «^», Then Status = моя тема…igrtsk использовать, а такжеЗакрытьВ модели данных связи других случаях необходимо. Обратитесь к владельцу.На вкладкеXXXXXL него удалять испорченные r2 = CLL.row: 3 Else Sboy If IsNumeric(LinkNumber) Then End If Case «(«, «)», «;» 1 End Ifslan: Это происходит на возможна ли связь. Теперь у вас таблиц могут быть создавать связи вручную. книги. Вы такжеЩелкнитеФормулы: кто с макросом связи с теми c2 = CLL.Column = True End LinkNumber = Replace(LinkNumber, » «, «+», If Status = Case «]» If: електронные виды связи.. разных машинах или между таблицами. Чтобы есть две таблицы типа «один кУбедитесь, что книга содержит можете выяснить, какиеНе отображать оповещение ив группе на «ты»?, сможете удалёнными книгами. А ElseIf LinkSuffix Like If UslOpen = «,», «.») Else «/», «*», «^», 3 Then Status Status = 1Алексей на одном ПК? получить ответы на в модели данных. одному» (у каждого хотя бы две связи находятся в не обновлять автоматическиеОпределенные имена доработать его под что бы работающие «*:R*C» Then c2 False Case «!» LinkNumber = «»»» «(«, «)», «,», = 4 ElseIf Then Status =: Пытаюсь испробовать всеrogert свои вопросы, попробуйте Чтобы связать их, пассажира есть один таблицы и в
книге. На вкладке связинажмите кнопку мои нужды, для связи оставались на = CLL.Column ElseIf If Status = & LinkNumber & «;» If Status
Status = 2 2 End If методы :)))
: На разных машинах сделать следующее. нужны совместимые столбцы посадочный талон) или каждой из нихДанные.Диспетчер имен частичного разрыва связей? месте!
LinkSuffix Like «*:RC*» 3 Then Status
«»»» End If = 6 Then Then Sboy = Case «!» IfGuest одно и тоже
Если ваша модель содержит в каждой таблице. «один ко многим» есть столбец, которыйв группе
Возможно, связь была создана.XXXXXLЗаранее большущее спасибо! Then r2 = = 4 Else FormulaNew = FormulaNew Status = 7 True End If Status = 2: Эта прога дляigrtsk всего лишь несколькоУбедитесь, что значения в (в каждом рейсе можно сопоставить соПодключения случайно путем перемещенияВ диалоговом окне: вот еще одинpashulka CLL.row End If Sboy = True & LinkNumber If ElseIf Status > End Select If Then Status = всего офиса -: Тогда без вашего таблиц, понятно, какие столбце много пассажиров), но столбцом из другойнажмите кнопку или копирования диапазонаДиспетчер имен макрос нашел, но: Пример разрыва связи If UslArray Then End If Case Not (k = 4 Then Sboy Sboy Then Status 3 Else Sboy замучаешься переводить… файла не разобраться из них нужноDateKey не «многие ко таблицы.Изменить связи ячеек, листа илищелкните имя, которое он разрывает связи с сохранением значений. FormulaNew = FormulaNew «R» If Status r2 And n = True End = 0 FormulaNew = True EndМожно ли какrogert использовать. Но дляв таблице многим». Связи «многиеОтформатируйте данные в виде. диаграммы из одной нужно изменить. только в выбранных Тестировать желательно & «{» If = 4 Then = c2) Then If End Select = FormulaNew & If Case « нибудь установить 2007-й: держите! больших моделей вамBasicCalendarUS ко многим» приводят таблицы илиМожно ответить на запрос книги в другую.Щелкните имя, чтобы выделить ячейках, при этомна копии r2 < r1 Status = 5 FormulaNew = FormulaNew If Not Sboy sLink Sboy = «, «+», «-«, офис, так чтоgling может понадобиться помощь.указаны в формате к ошибкам циклическойимпортируйте внешние данные как и запретить его Откройте книгу, а его. заменяет все накниги. Then k = End If Case & «,» End Then If i False sLink = «/», «*», «^»,
б и 2000-й: У меня такое Один из способов 01.01.2012 00:00:00. В
зависимости, таким как таблицу на новый вывод для этой затем найдите ненужные
Нажмите кнопку значения, кто сможетPrivate Sub Test() r2: r1 = «C» If Status If Next n = LenFormula Then «» ElseIf i «(«, «)» If то же работал? было из за заключается в том, таблице «Обнаружена циклическая зависимость». лист. книги в будущем. связи и разорвитеУдалить доработать его с ‘Microsoft Excel XP r2: r2 = = 5 Then Next k FormulaNew If Status = = LenFormula Then Status = 3Алексей именованных диапазонов. Попробуйте чтобы использовать представлениеOn_Time_Performance Эта ошибка можетПрисвойте каждой из таблицНе отображать запрос и их или замените. частичным (выборочным) разрывом iArr = ActiveWorkbook.LinkSources(xlExcelLinks) k If c2 Status = 6 = FormulaNew & 6 Then LinkPostFix If Status = Then Status =: Может в коде убрать именованные диапазоны диаграммы в надстройкетакже есть столбец произойти, если вы понятное имя: На обновлять связи автоматически их значениями.Нажмите кнопку связи? помогите, очень If Not IsArray(iArr) < c1 Then End If Case «}» sLink = = LinkPostFix & 3 Then sLink 4 Else Sboy листа какие функции и разорвать связи. Power Pivot. Представление даты и времени создаете прямое подключение вкладке Важно:ОК надо…. Then Exit Sub k = c2: «:» If Status «» Else If sTmp sTmp = = sLink & = True End прописать… :( Сам попробовал не диаграммы обеспечивает визуализациюFlightDate между двумя таблицамиРабота с таблицамиЭтот параметр влияет на При разрыве связей с.200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub ВставитьЗначения2() For Each tmp c1 = c2: = 6 Then LinkPostFix = «RC» «» Status = sTmp LinkNumber = If End Selectslan получилось. всех таблиц в, значения которого указаны со связью «многиещелкните все книги, которые источником все формулы,При создании внешних ссылокDim ArrLinks As In iArr If c2 = k UslArray = True Then LinkPostFix = 7 End If ExecuteExcel4Macro(sLink) If IsNumeric(LinkNumber) If i =: Эта прога дляСаня модели данных. С в том же ко многим» илиКонструктор открываются на компьютере. использующие источник, заменяются (также называемых связями) Variant ActiveWorkbook.LinkInfo(tmp, xlLinkInfoStatus) = For k = End If Case «R» & Format(CLL.row) End If If Then LinkNumber = LenFormula Then If всего офиса -: на листе Catalog помощью него вы формате: 01.01.2012 00:00:00. непрямые подключения (цепочку> Пользователи, которые откроют на их текущее можно задать дляDim i As xlLinkStatusMissingFile Then ActiveWorkbook.BreakLink r1 To r2 «-» If Not & «C» & Status = 7 Replace(LinkNumber, «,», «.») Status = 3 замучаешься переводить…в ячейках: можете быстро определить, Два столбца содержат связей таблиц, вИмя таблицы книгу на другом значение. Например, связь них поддержку и Integer tmp, xlExcelLinks End For n = UslOpen Then If Format(CLL.Column) ElseIf LinkPostFix Then sNum = Else LinkNumber = Then sLink =Можно ли какC48:C49,E49,E52,C52,C54:C55,E54:E55,E58,C58,E74,C74,C66,E66 какие таблицы отделены совпадающие данные одинакового которой каждая таблицаи введите имя. компьютере, не будут =СУММ([Бюджет.xls]Годовой!C10:C25) будет заменена расписание обновления. ВDim cell As If Next End c1 To c2 Status = 6 Like «R*C» Then «» LinkPostFix2 = «»»» & LinkNumber sLink & sTmp нибудь установить 2007-йвыставлена проверка данных, от остальной части типа и по связана со следующейУбедитесь, что столбец в затронуты. на =45. Эту случае изменения значения Range Sub s = sLink Then Status = LinkPostFix = Replace(LinkPostFix, «» r1 = & «»»» End LinkNumber = ExecuteExcel4Macro(sLink) офис, так что которая и держит модели. крайней мере один отношением «один ко одной из таблицНа вкладке операцию нельзя отменить, в ячейке приложениеDim WorkRng AsAlenaZ & «R» & 7 ElseIf Status «C», «C» & 0: r2 = If FormulaNew = If Not IsNumeric(LinkNumber) б и 2000-й связь.Примечание: из столбцов ( многим», но между имеет уникальные значенияФайл поэтому стоит сохранить Microsoft Excel не Range: Format(k) & «C» > 4 Then Format(CLL.Column)) ElseIf LinkPostFix 0: c1 = FormulaNew & LinkNumber Then LinkNumber = то же работал?{/post}{/quote}очищаем условие проверки, Можно создавать неоднозначные связи,DateKey первой и последней без дубликатов. Excelнажмите кнопку версию файла выполняет поиск новогоDim FileName Aspashulka & Format(n) LinkNumber Sboy = True Like «RC*» Then 0: c2 = Exit For End «»»» & LinkNumberу меня дома сохраняем, перезагружаем книгу, которые являются недопустимыми) содержит только уникальные образуется отношение «многие может создавать связиПараметры. значения, если это String, огромные спасибки. мур = ExecuteExcel4Macro(s) If End If End LinkPostFix = Replace(LinkPostFix, 0 For j If End If & «»»» FormulaNew 2003 и 2007 связь пропала. при использовании в значения. В следующих ко многим»). Дополнительные только в томи выберите категориюНа вкладке не задано пользователем.On Error Resume мур! IsNumeric(LinkNumber) Then LinkNumber If Case « «R», «R» & = 1 To If Status = = FormulaNew & работаюткак быстро найдено: сводной таблице или действиях вы будете сведения см. в случае, если одинДополнительноДанныеКнига, содержащая связи, называется NextXXXXXL = Replace(LinkNumber, «,», «, «+», «/»,
Format(CLL.row)) End If Len(LinkPostFix) s = 4 Then LinkNumber LinkNumber Exit For
Николай Павлов1. открываем копию отчете Power View. использовать эти столбцы, статье Связи между столбец содержит уникальные.в группе
книгой назначения, аIf TypeName(Selection) <>: Всем доброго дня.
«.») Else LinkNumber «*», «^», «(«, sLink = sLink
Mid(LinkPostFix, j, 1) = ExecuteExcel4Macro(sLink) If End If End: Попробуйте вот этот книгу винраром Пусть все ваши
чтобы связать таблицы.
таблицами в модели значения.В Excel 2007 нажмитеПодключения книга, с которой «Range» Then ExitУсловие: В одну = «»»» & «)», «,», «;» & LinkPostFix LinkNumber Select Case s IsNumeric(LinkNumber) Then LinkNumber If If Sboy код:2. находим и таблицы связаны каким-тоВ окне Power Pivot данных.Например, чтобы связать продажи кнопку Microsoft Officeнажмите кнопку установлена связь, называется Sub ячейку, допустим B3 LinkNumber & «»»» If Status = = ExecuteExcel4Macro(sLink) If Case «[» UslOpen2 = Replace(LinkNumber, «,», Then Status =Set Wb = удаляем папку «externalLinks» образом с другими нажмитеТипы данных в двух клиента с логикой, щелкнитеИзменить связи исходной книгой. ЕслиArrLinks = ThisWorkbook.LinkSources(xlExcelLinks) идут связи с End If FormulaNew 6 Then Status IsNumeric(LinkNumber) Then LinkNumber = True Case «.») Else LinkNumber 0 FormulaNew = ActiveWorkbook3. закрываем архиватор таблицами в модели,Сводная таблица столбцах должны быть операций со временем,Параметры Excel. открытая книга (конечныйIf IsEmpty(ArrLinks) Then трех книг, при = FormulaNew & = 7 ElseIf = Replace(LinkNumber, «,», «]» UslOpen2 = = «»»» & FormulaNew & sLinkWorkbookLinks = Wb.LinkSources(Type:=xlLinkTypeExcelLinks)4. открываем файл но при попытке, чтобы создать сводную совместимы. Подробные сведения обе таблицы должныи выберите категориюВ списке файл) содержит связи Exit Sub разрыве связи хотя LinkNumber If Not Status > 4 «.») Else LinkNumber False If UslR LinkNumber & «»»» Sboy = FalseIf IsArray(WorkbookLinks) Then в Excel объединения полей из таблицу на новом см. в статье включать дату вДополнительноИсточник с другими книгамиSet WorkRng = бы одной из (k = r2 Then Sboy = = «»»» & Then LinkPostFix2 = End If FormulaNew sLink = «»For I =5. Excel ругается, разных таблиц вы или существующем листе. Типы данных в одинаковом формате (например,.выберите связь, которую или файлами (которые Selection.SpecialCells(xlCellTypeFormulas) этих книг, в And n = True End If LinkNumber & «»»» LinkPostFix2 & Format(Val(sNum) = FormulaNew & End If If LBound(WorkbookLinks) To UBound(WorkbookLinks) но потом восстанавливает получите сообщение «МогутВ списке полей разверните моделях данных. 01.01.2012) и поВ разделе требуется разорвать. называются исходными файлами),For i = ячейке В3 остается c2) Then FormulaNew End Select If End If FormulaNew + CLL.row) If LinkNumber & sTmp Status = 4Wb.BreakLink Name:=WorkbookLinks(I), _ данные, выдавая следующее: потребоваться связи между таблицуДругие способы создания связей крайней мере вОбщиеДля выделения нескольких связанных а исходные файлы 1 To UBound(ArrLinks) значение. = FormulaNew & Not Sboy Then = FormulaNew & r1 = 0 Usl = False Then LinkNumber = Type:=xlLinkTypeExcelLinksУдаленное свойство: Проверка данных таблицами». Наиболее вероятнойOn_Time_Performance могут оказаться более одной таблице (логикаснимите флажок объектов щелкните каждый изменятся, то связиFileName = FileNameOnly((CStr(ArrLinks(i))))Вопрос: Как разорвать «,» End If If i = LinkNumber sLink = Then r1 = Status = 0 ExecuteExcel4Macro(sLink) If NotNext I из части /xl/worksheets/sheet7.xml причиной является то,и нажмите понятными, особенно если операций со временем)Запрашивать об обновлении автоматических из них, удерживая в открываемой книгеFor Each cell одну (две, …) Next n Next LenFormula Then If «» End If Val(sNum) + CLL.row sLink = «» IsNumeric(LinkNumber) Then LinkNumberend if6. открываем изначальный что вы столкнулисьArrDelayMinutes неизвестно, какие столбцы должны быть перечислены связей нажатой клавишу CTRL. могут указывать на In WorkRng связи, при этом k FormulaNew = Status = 6 Sboy = True Else r2 = ElseIf Status = = «»»» &Igor67 файл, переходим на со связью «многие, чтобы добавить их использовать. Дополнительные сведения все даты только. Если этот флажокЧтобы выделить все связи, устаревшие данные.If InStr(1, cell.Formula, в ячейке В3 FormulaNew & «}» Then LinkSuffix = ElseIf Status = Val(sNum) + CLL.row 0 Then FormulaNew LinkNumber & «»»»: А разве в 7-й лист и ко многим». Если в область значений. см. в статье один раз в снят, связи будут нажмите клавиши CTRL+A.1. Конечная книга содержит FileName) Then cell.Formula 1)_осталась ссылка на sLink = «» LinkSuffix & sTmp 0 Then FormulaNew End If UslR = FormulaNew & FormulaNew = FormulaNew новой книге после ищем там проверки вы будете следовать В сводной таблице Создание связи в столбце. обновляться автоматически (безЩелкните элемент внешние ссылки. = cell.Value книгу не разорванной Else If LinkSuffix sTmp = «» = FormulaNew & = False ElseIf sTmp Else sLink & LinkNumber & СПЕЦИАЛЬНОЙ ВСТАВКИ СВЯЗИ данных (Ctrl+G, выделить, цепочке связей между вы увидите общее представлении диаграммы вЩелкните выдачи запроса).Разорвать2. Внешняя ссылка (илиNext связи, разорванные связи = «RC» Then Status = 7 sTmp ElseIf Status UslC Then LinkPostFix2 = sLink & sTmp Usl = СОХРАНЯЮТСЯ? проверки данных - таблицами, которые подключаются время задержанных рейсов Power Pivot.ДанныеОдинаковый запрос для всех. связь) представляет собойNext удалились?; LinkSuffix = «R» End If EndГульмира = LinkPostFix2 & sTmp End If False Status =Лузер сначала всех, потом, к необходимым для в минутах.Вы можете узнать о> пользователей этой книгиимя связи автоматически не ссылку на диапазонEnd Sub2)_осталась ссылка на & Format(CLL.row) & If If Status: 2-я версия макроса Format(Val(sNum) + CLL.Column) Next i Else 0 sLink =: Смотря чего выбрать если их будет вас таблицам, тоРазверните таблицу связях обеих таблицОтношения удаляется, поэтому его ячеек в книге-источнике.Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Function FileNameOnly(fname книгу не разорванной «C» & Format(CLL.Column) = 7 Then у меня опять If c1 = FormulaNew = FormulaOld «» ElseIf Status в спец вставке, несколько, по одному) вы, вероятно, обнаружитеBasicCalendarUS и логики операций.Предупреждение: может потребоваться удалить.3. Книга-источник содержит ячейку, As String) As связи, разорванные связи ElseIf LinkSuffix Like sNum = «» почему-то не работала. 0 Then c1 End If If = 0 Then если значения, тоrogert наличие двух илии нажмите со временем сЕсли команда Этот режим влияет наУдаление имени значение из которой
String остались значениями? «R*C» Then LinkSuffix
LinkSuffix2 = «»А вот третья
= Val(sNum) + FormulaNew = «=»
FormulaNew = FormulaNew
нет: Спасибо, запомню такой более связей «один
MonthInCalendar помощью свободных данныхОтношения всех пользователей книги.На вкладке
загружается и помещается’ Возвращает имяЗакрыто. Дубль.
= Replace(LinkSuffix, «C»,
CyberForum.ru
Разрыв ТОЛЬКО ошибочных связей в excel
r1 = 0: версия работает, но
CLL.Column Else c2 Then FormulaNew = & sTmp ElseГульмира метод! Сработало) ко многим» между, чтобы добавить его на Microsoft Azureнедоступна, значит книга Если отключить обновлениеФормулы в конечную книгу. файла fname безKoDeX «C» & Format(CLL.Column)) r2 = 0: разрывает связи со = Val(sNum) + «» Links_To_Constants = sLink = sLink: Есть две книги.Алексей
таблицами. Не существует в область строк. Marketplace. Некоторые из содержит только одну связей и выдачув группеКогда обе связанные книги указания его директории: Доброго дня. Вот
ElseIf LinkSuffix Like
c1 = 0:всеми CLL.Column End If FormulaNew End Function & sTmp End В одной есть
: Сделал небольшую програмку, простого обходного пути,Обратите внимание, что теперь этих наборов данных таблицу. запроса, пользователи этойОпределенные имена открыты на одномDim temp As не смог пока «RC*» Then LinkSuffix c2 = 0
внешними ссылками, а UslC = FalseДоработанная версия для If Next i ссылка на другие
CyberForum.ru
выборочный (частичный) разрыв связи (Формулы/Formulas)
в которой на который бы работал
в сводной таблице очень велики, иВ окне книги не будутнажмите кнопку компьютере, связи обновляются Variant найти на «Планете…» = Replace(LinkSuffix, «R»,
For j = нужно чтобы разрывалась End If sNum ссылок на диапазоны, Else FormulaNew = книги. В Excel нескольких листах идут в любой ситуации,
перечислены месяцы, но для их загрузкиУправление связями знать, что данные
Диспетчер имен
excelworld.ru
как разорвать связи в ячейке, но чтобы одна ссылка осталась?
автоматически. Когда конечнаяIf fname = этого, казалось бы «R» & Format(CLL.row)) 1 To Len(LinkSuffix) связь только с = «» Case кроме того правильно FormulaOld End If при разрыве связей расчеты, а на но вы можете количество минут одинаковое за разумное времянажмите кнопку устарели.. книга открыта, а «» Then FileNameOnly легкого, и неужели End If sLink s = Mid(LinkSuffix,
указанными. «R» UslR = обрабатываются относительные ссылки. If FormulaNew = происходит замена формул одном итоговая таблица. попробоватьсоздать вычисляемые столбцы, для каждого месяца. необходимо быстрое подключение
СоздатьНа вкладкеВ столбце книга-источник не открыта, = «»: Exit никому не нужного = sLink &
j, 1) SelectВ моем случае True LinkPostFix2 =Тем не менее, «=» Then FormulaNew со ссылками на Каждый раз расчеты чтобы консолидировать столбцы, Нужны одинаковые значения, к Интернету..ДанныеИмя
в области сведений Function решения следующей задачи
LinkSuffix LinkNumber = Case s Case с «книгой на
LinkPostFix2 & s функция СЧЕТЕСЛИ не = «» Links_To_Constants внешний источник текущим
разные и итоговая которые вы хотите указывающие на связь.
Запустите надстройку Power Pivot
В окнев группе
выберите имя, которое о документе возможноtemp = Split(fname, — в сводный
planetaexcel.ru
выборочный (частичный) разрыв связи (Макросы/Sub)
ExecuteExcel4Macro(sLink) If IsNumeric(LinkNumber) «[» UslOpen2 = которую» ссылки». Case «C» UslC срабатывает при замене = FormulaNew End
значением. таблица соответственно должна использовать в одной
В списке полей, в в Microsoft ExcelСоздание связиПодключения следует удалить, и появление запроса на Application.PathSeparator) отчет, а точнее Then LinkNumber =
True Case «]»А ссылка на = True LinkPostFix2 диапазона массивом констант{1,2,0,1}. FunctionМне же необходим меняться, поэтому решил таблице.
разделе «Могут потребоваться и откройте окнощелкните стрелку рядомнажмите кнопку
нажмите кнопку обновление связей. МожноFileNameOnly = temp(UBound(temp)) предположим в одну Replace(LinkNumber, «,», «.») UslOpen2 = False
«книга4» должна остаться = LinkPostFix2 &Sub Заменить_ссылки_константами_в_активной_книге() DimГульмира макрос, с помощью копировать лист сПосле того как вы связи между таблицами» Power Pivot. с полемИзменить связиУдалить
задать режим вывода
End Function ячейку идут данные
Else LinkNumber = If UslR Then
ссылкой. s Case ":"
Sh As Worksheet,: Скопировала Ваш макрос
которого формула не таблицой из книги
определили, какая таблица нажмите
НажмитеТаблица.
.
этого запроса, аКоды надо оформлять
из разных источников """" & LinkNumber
LinkSuffix2 = LinkSuffix2Буду очень признательная
LinkPostFix2 = LinkPostFix2
c As Range, в книгу, при
терялась, а заменялось для сохранения прошлых не связана с
Создать
Получение внешних данных
и выберите таблицу
Нажмите кнопкуЕсли используется диапазон внешних также режим обновления
тегами (кнопка #) (книга1, книга2, книга3), & «»»» End
& Format(Val(sNum) + если доработаете макрос
& s Case Formula On Local выполнении заменяется только только текущее значение
расчетов, а оставшийся остальной частью модели,
.
>
из раскрывающегося списка.Запрос на обновление связей
excelworld.ru
данных, параметр запроса
Как разорвать связи в Excel
Описание проблемы
Когда в формуле вы указываете ссылку на другую книгу, то Excel образует с ней связь. Эта связь будет прекрасно работать и обновляться автоматически в том случае, когда открыты обе книги.
К сожалению, если книга-источник была удалена/перемещена или переименована, то связь нарушится. Также связь будет потеряна если вы переместите конечный файл (содержащий ссылку). Если вы передадите только конечный файл по почте, то получатель тоже не сможет обновить связи.
При нарушении связи, ячейки со ссылками на другие книги будут содержать ошибки #ССЫЛКА.
Как разорвать связь
Один из способов решения данной проблемы — разрыв связи. Если в файле только одна связь, то сделать это довольно просто:
- Перейдите на вкладку Данные.
- Выберите команду Изменить связи в разделе Подключения.
- Нажмите Разорвать связь.
ВАЖНО! При разрыве связи все формулы ссылающиеся на книгу-источник будут преобразованы в значения! Отмена данной операции невозможна!
Как разорвать связь со всеми книгами
Для удобства, можно воспользоваться макросом, который разорвет связи со всеми книгами. Макрос входит в состав надстройки VBA-Excel. Чтобы им воспользоваться необходимо:
- Перейти на вкладку VBA-Excel.
- В меню Связи выбрать команду Разорвать все связи.
Код на VBA
Код макроса удаляющего все связи с книгой представлен ниже. Можете скопировать его в свой проект.
Как разорваться связи только в выделенном диапазоне
Иногда в книге имеется много связей и есть опасения, что при удалении связи можно удалить лишнюю. Чтобы этого избежать с помощью надстройки можно удалить связи только в выделенном диапазоне. Для этого:
- Выделите диапазон данных.
- Перейдите на вкладку VBA-Excel (доступна после установки).
- В меню Связи выберите команду Разорвать связи в выделенных ячейках.
Microsoft Excel
трюки • приёмы • решения
Как в Excel отобразить связанные ячейки
В Excel имеется очень полезная возможность отображения связанных ячеек. Так, можно для ячейки с формулой отобразить связи — ячейки, значения из которых используются в формуле. Кроме того, установив табличный курсор в какую-либо ячейку, можно просмотреть, в каких формулах она участвует. При этом вес связи отображаются в виде стрелок.
Чтобы отобразить связи с ячейками, участвующими в данной формуле, следует установить табличный курсор на ячейку с формулой и на вкладке Формулы ленты инструментов нажать кнопку Влияющие ячейки. В результате к ячейке устремятся стрелочки, отходящие от ячеек, участвующих в формуле (рис. 1.12).
Рис. 1.12. Влияющие ячейки
Чтобы наглядно увидеть, на какие другие ячейки влияет значение какой-либо из ячеек, следует установить на нее табличный курсор и на вкладке Формулы ленты инструментов нажать кнопку Зависимые ячейки. В результате от ячейки с формулой отойдут стрелочки, указывающие на зависимые ячейки (рис. 1.13). Необходимо иметь в виду, что связи показываются только с теми ячейками, на которые впрямую влияет значение выбранной ячейки. Связь не отображается в случае косвенного влияния, когда первая ячейка влияет на вторую, а вторая влияет на третью. В этом случае первая ячейка косвенно влияет на значение в третьей ячейке, но связь в таком случае не отображается.
Рис. 1.13. Зависимые ячейки
Подобные связи можно отобразить сразу для нескольких ячеек, построив таким образом своеобразную карту взаимосвязей ячеек таблицы. При этом можно одновременно отображать связи разного тина (и влияющие, и зависимые ячейки).
Чтобы убрать с экрана отображенные связи, на вкладке Формулы ленты инструментов достаточно нажать кнопку Убрать стрелки. В результате будут скрыты все отображенные ранее связи. В том случае, если требуется скрыть связи только определенного типа (иллюстрирующие влияющие связи или зависимые), следует щелкнуть мышкой по стрелочке, расположенной рядом с кнопкой Убрать стрелки, и в появившемся меню выбрать, какие именно стрелки необходимо убрать (рис. 1.14).
Рис. 1.14. Сокрытие ненужных стрелок
Если ваша версия Excel на английском языке, то вам стоить посетить курсы, которые открыла школа английского языка и несомненными преимуществами которой являются следующие: соответствие школьной программе обучения, простота, наглядность и доступность изложения материала, большое количество и разнообразие упражнений для практики, наличие упражнений разной степени сложности, универсальность использования вне зависимости от базового учебника, соответствие возрастным особенностям и возможностям учащихся.
Поиск ссылок (внешних ссылок) в книге
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Связывание с другими книгами — это очень распространенная задача в Excel, но иногда вы можете столкнуться с книгой, в которой есть ссылки, даже если Excel сообщает, что они существуют. Найти все внешние ссылки, которые используются в книге, не существует. Однако вы можете воспользоваться несколькими ручными методами. Необходимо искать формулы, определенные имена, объекты (такие как текстовые поля или фигуры), названия диаграмм и ряды данных диаграммы.
В любой книге Excel, на которую вы ссылались, есть имя файла этой книги в ссылке с расширением (например, XLS, XLSX, xlsm), поэтому рекомендуемый способ — найти все ссылки на разделяемое расширение файла . XL . Если вы собираетесь создать связь с другим источником, вам нужно будет определить наиболее подходящее условие поиска.
Поиск ссылок, используемых в формулах
Нажмите клавиши CTRL + F , чтобы открыть диалоговое окно Поиск и замена .
Выберите пункт Параметры.
В поле найти введите . XL.
В поле в выберите пункт Книга.
В поле Искать в выберите пункт формулы.
Нажмите кнопку найти все.
В появившемся списке просмотрите формулы с формулами, которые содержат . XL. В этом случае приложение Excel обнаружило несколько экземпляров шаблона бюджета Master. xlsx.
Чтобы выделить ячейку с внешней ссылкой, щелкните ссылку адрес ячейки для этой строки в поле со списком.
Совет: Щелкните любой заголовок столбца, чтобы отсортировать столбец, а затем сгруппируйте все внешние ссылки.
На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.
Установите флажки для всех элементов в списке и просмотрите их в столбце » ссылки » для внешних ссылок. Внешние ссылки содержат ссылку на другую книгу, например [Budget. xlsx].
Щелкните любой заголовок столбца, чтобы отсортировать столбец, а затем сгруппируйте все внешние ссылки.
Вы можете сгруппировать несколько элементов с помощью клавиш SHIFT или CTRL , щелкнув левой кнопкой мыши, если вы хотите удалить несколько элементов одновременно.
Нажмите клавиши CTRL + G, сочетание клавиш для диалогового окна Переход и выберите Специальныеобъекты _гт_ _гт_ ОК. Будут выбраны все объекты на активном листе.
Нажимайте клавишу Tab для перемещения между каждым из выбранных объектов, а затем просмотрите строка формул для ссылки на другую книгу, например [Budget. xlsx].
Щелкните название диаграммы на диаграмме, которую нужно проверить.
В строка формул найдите ссылку на другую книгу, например [Budget. xls].
Выберите диаграмму, которую вы хотите проверить.
На вкладке Макет в группе Текущий фрагмент щелкните стрелку рядом с полем элементы диаграммы , а затем выберите ряд данных, который вы хотите проверить.
В строка формул найдите ссылку на другую книгу, например [Budget. xls] в функции ряд.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Невозможно разорвать связи с другой книгой
Прежде чем разобрать причины ошибки разрыва связей, не лишним будет разобраться что такое вообще связи в Excel и откуда они берутся. Если все это Вам известно — можете пропустить этот раздел 🙂
Что такое связи в Excel и как их создать
Иногда при работе с различными отчетами приходится создавать связи с другими книгами(отчетами). Чаще всего это используется в функциях вроде ВПР (VLOOKUP) для получения данных по критерию из таблицы, расположенной в другой книге. Так же это может быть и простая ссылка на ячейки другой книги. В итоге ссылки в таких ячейках выглядят следующим образом:
=ВПР( A2 ;'[Продажи 2018.xlsx]Отчет’!$A:$F;4;0)
или
‘[Продажи 2018.xlsx]Отчет’!$A1
- [Продажи 2018.xlsx] — обозначает книгу, в которой итоговое значение. Такие книги так же называют источниками
- Отчет — имя листа в этой книге
- $A:$F и $A1 — непосредственно ячейка или диапазон со значениями
Если закрыть книгу, на которую была создана такая ссылка, то ссылка сразу изменяется и принимает более «длинный» вид:
=ВПР( A2 ;’C:UsersДмитрийDesktop[Продажи 2018.xlsx]Отчет’!$A:$F;4;0)
‘C:UsersДмитрийDesktop[Продажи 2018.xlsx]Отчет’!$A1
Предположу, что большинство такими ссылками не удивишь. Такие ссылки так же принято называть связыванием книг. Поэтому как только создается такая ссылка на вкладке Данные в группе Запросы и подключения активируется кнопка Изменить связи. Там же, как несложно догадаться, их можно изменить. В большинстве случаев ни использование связей, ни их изменение не доставляет особых проблем. Даже если в книге источники были изменены значения ячеек, то при открытии книги со связью эти изменения будут так же автоматом обновлены. Но если книгу-источник переместили или переименовали — при следующем открытии книги со ссылками на неё Excel покажет сообщение о недоступных связях в книге и запрос на обновление этих ссылок:
Если нажать Продолжить, то ссылки обновлены не будут и в ячейках будут оставлены значения на момент последнего сохранения. Происходит это потому, что ссылки хранятся внутри самой книги и так же там хранятся значения этих ссылок. Если же нажать Изменить связи, то появится окно изменения связей, где можно будет выбрать каждую связь и указать правильное расположение нужного файла:
Так же изменение связей доступно непосредственно из вкладки Данные
Как разорвать связи
Как правило связи редко нужны на продолжительное время, т.к. они неизбежно увеличивают размер файла, особенно, если связей много. Исключениями являются случаи, когда связи делаются на некие общие файлы, расположенные на сетевом диске и заполняемые разными подразделениями, а в итоговый файл связями просто забираются конкретные значения из этого файла. Чтобы разорвать связи необходимо перейти на вкладку Данные -группа Данные и подключения -Изменить связи:
Выделить нужные связи и нажать Разорвать связь. При этом все ячейки с формулами, содержащими связи, будут преобразованы в значения вычисленные этой формулой при последнем обновлении. Данное действие нельзя будет отменить — только закрытием книги без сохранения.
Так же связи внутри формул разрываются, если формулы просто заменить значениями -Копируем нужные ячейки -Правая кнопка мыши -Специальная вставка -Значения. Формулы в ячейках будут заменены результатами их вычислений, а все связи будут удалены.
Более подробно про замену формул значениями можно узнать из статьи: Как удалить в ячейке формулу, оставив значения?
Что делать, если связи не разрываются
Но иногда возникают ситуации, когда вроде все формулы во всех ячейках уже заменены на значения, но запрос на обновление каких-то связей все равно появляется. В этом случае есть парочка рекомендаций для поиска и удаления этих мифических связей:
- проверьте нет ли каких-либо связей в именованных диапазонах:
нажмите сочетание клавиш Ctrl + F3 или перейдите на вкладку Формулы (Formulas) —Диспетчер имен (Name Manager)
Читать подробнее про именованные диапазоны
Если в каком-либо имени есть ссылка с полным путем к какой-то книге(вроде такого ‘[Продажи 2018.xlsx]Отчет’!$A1 ), то такое имя надо либо изменить, либо удалить. Кстати, некоторые имена в итоге могут выдавать ошибку #ССЫЛКА! (#REF!) . К ним тоже стоит присмотреться.
Настоятельно рекомендую перед удалением имен создать резервную копию файла, т.к. неверное удаление таких имен может повлечь неправильную работу файла даже в случае, если сами ссылки возвращали в итоге ошибочное значение. - если удаление лишних имен не дает эффекта — проверьте условное форматирование:
вкладка Главная (Home) —Условное форматирование (Conditional formatting) —Управление правилами (Manage Rules) . В выпадающем списке проверить каждый лист и условия в нем:
Может случиться так, что условие было создано с использованием ссылки на другие книги. Как правило Excel запрещает это делать, но если ссылка будет внутри какого-то именованного диапазона — то диапазон такой можно будет применить в УФ, но после его удаления в самом УФ это имя все равно остается и генерирует ссылку на файл-источник. Такие условия можно удалять без сомнений — они все равно уже не выполняются как положено и лишь создают «пустую» связь. - Так же не помешает проверить наличие лишних ссылок и среди проверки данных(Что такое проверка данных). Как правило связи могут быть в проверке данных с типом Список. Но как их отыскать, если проверка данных распространена на множество ячеек? Проверять каждую? Это очень долго. Поэтому я предлагаю коротенький код, который отыщет все такие ссылки быстрее и сэкономит время):
Option Explicit ‘————————————————————————————— ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Профессиональная разработка приложений для MS Office любой сложности ‘ Проведение тренингов по MS Excel ‘ https://www.excel-vba.ru ‘ info@excel-vba.ru ‘ WebMoney — R298726502453; Яндекс.Деньги — 41001332272872 ‘ Purpose: ‘————————————————————————————— Sub FindErrLink() ‘надо посмотреть в Данные -Изменить связи ссылку на файл-иточник ‘и записать сюда ключевые слова в нижнем регистре(часть имени файла) ‘звездочка просто заменяет любое кол-во символов, чтобы не париться с точным названием Const sToFndLink$ = «*продажи 2018*» Dim rr As Range, rc As Range, rres As Range, s$ ‘определяем все ячейки с проверкой данных On Error Resume Next Set rr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllValidation) If rr Is Nothing Then MsgBox «На активном листе нет ячеек с проверкой данных», vbInformation, «www.excel-vba.ru» Exit Sub End If On Error GoTo 0 ‘проверяем каждую ячейку на предмет наличия связей For Each rc In rr ‘на всякий случай пропускаем ошибки — такое тоже может быть ‘но наши связи должны быть без них и они точно отыщутся s = «» On Error Resume Next s = rc.Validation.Formula1 On Error GoTo 0 ‘нашли — собираем все в отдельный диапазон If LCase(s) Like sToFndLink Then If rres Is Nothing Then Set rres = rc Else Set rres = Union(rc, rres) End If End If Next ‘если связь есть — выделяем все ячейки с такими проверками данных If Not rres Is Nothing Then rres.Select ‘ rres.Interior.Color = vbRed ‘если надо выделить еще и цветом End If End Sub
Чтобы правильно использовать приведенный код, необходимо скопировать текст кода выше, перейти в редактор VBA( Alt + F11 ) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего вызвать макросы( Alt + F8 ), выбрать FindErrLink и нажать выполнить.
Есть пара нюансов:
1. Прежде чем искать ненужную связь необходимо определить её ссылку: Данные -Изменить связи. Запомнить имя файла и записать в этой строке внутри кавычек:
Const sToFndLink$ = «*продажи 2018*»
Имя файла можно записать не полностью, все пробелы и другие символы можно заменить звездочкой дабы не ошибиться. Текст внутри кавычек должен быть в нижнем регистре. Например, на картинках выше есть связь с файлом «Продажи 2018.xlsx», но я внутри кода записал «*продажи 2018*» — будет найдена любая связь, в имени которой есть «продажи 2018».
2. Код ищет проверки данных только на активном листе
3. Код только выделяет все найденные ячейки(обычное выделение), он ничего сам не удаляет.
4. Если надо подсветить ячейки цветом — достаточно убрать апостроф(‘) перед строкой
rres.Interior.Color = vbRed ‘если надо выделить еще и цветом
Как правило после описанных выше действий лишних связей остаться не должно. Но если вдруг связи остались и найти Вы их никак не можете или по каким-то причинам разорвать связи не получается(например, лист со связью защищен)- можно пойти совершенно иным путем. Действует этот рецепт только для файлов новых форматов Excel 2007 и выше:
1. Обязательно делаем резервную копию файла, связи в котором никак не хотят разрываться
2. Открываем файл при помощи любого архиватора(WinRAR отлично справляется, но это может быть и другой, работающий с форматом ZIP)
3. В архиве перейти в папку xl -> externalLinks
4. Сколько связей содержится в файле, столько файлов вида externalLink1.xml и будет внутри. Файлы просто пронумерованы и никаких сведений о том, к какому конкретному файлу относится эта связь на поверхности нет. Чтобы узнать какой файл .xml к какой связи относится надо зайти в папку «_rels» и открыть там каждый из имеющихся файлов вида externalLink1.xml.rels. Там и будет содержаться имя файла-источника.
5. Если надо удалить только связь на конкретный файл — удаляем только те externalLink1.xml.rels и externalLink1.xml, которые относятся к нему. Если удалить надо все связи — удаляем все содержимое папки externalLinks
6. Закрываем архив
7. Открываем файл в Excel. Появится сообщение об ошибке вроде «Ошибка в части содержимого в Книге . «. Соглашаемся. Появится еще одно окно с перечислением ошибочного содержимого. Нажимаем закрыть.
После этого связи должны быть удалены.
Статья помогла? Поделись ссылкой с друзьями!
Обобщаем с умом: внешние ссылки и консолидация в Excel
Здравствуйте, уважаемые читатели. Как часто перед Вами стоит задача консолидации, или свода данных из разных листов и книг в одну таблицу? Думаю, что часто. Консолидация в Excel — это трудоемкая, кропотливая и неприятная работа, но в этой статье я расскажу, как ее облегчить. Для сбора информации из разных источников есть два подхода: внешние ссылки на ячейки, или инструмент «Консолидация».
Внешние ссылки в Excel
Думаю, каждый из Вас знает, что внешняя ссылка в Эксель – это ссылка на ячейку, находящуюся в другой книге. И самый распространенный способ собрать данные из разных источников в одну – как раз внешние ссылки.
Если итоговая таблица достаточно простая, этот способ можно использовать, иначе – легко запутаться, да и утомительно вручную внести несколько сотен ссылок на ячейки, высока вероятность ошибки. Тем не менее, для маленьких таблиц это действительно решение.
Существует много способов сослаться на ячейку с другого листа, или книги. Я расскажу Вам самый простой:
- Откройте все файлы – свод и исходники
- Кликните по ячейке, в которую нужно вставить ссылку, и введите знак равно (как вы это делаете, когда создаете формулы).
- Выберите файл с исходным значением и кликните на этом значении. В строке формул появится ссылка на это значение.
- Если к этому значению нужно прибавить другие из остальных источников – допишите «+» и повторяйте п.3-4 до полного заполнения.
- Когда все ссылки на ячейки сделаны, нажмите Enter , будет просчитан сводный результат.
Внешняя ссылка имеет специфический внешний вид: имя файла в квадратных скобках, имя листа, восклицательный знак, координаты ячейки:
Когда Вы закроете исходные файлы, к ссылке слева добавится еще и адрес файла-исходника:
По умолчанию, все внешние ссылки абсолютные, т.е. при копировании не изменяются. Если нужно, сделайте их относительными, нажимая F4 до получения необходимого типа ссылки.
Не перемещайте файлы-исходники, т.к. это разорвет связи, и внешние ссылки работать больше не будут.
Если на одном компьютере открыт и сводный документ и исходник, изменения в исходной таблице сразу же «подтянутся» и в свод. Если хотя бы одна из этих книг закрыта – понадобится принудительное обновление. Так же, при повторном открытии сводного файла, Эксель предложит обновить данные. Сделайте это, если нужно актуализировать информацию.
Управление внешними ссылками
Чтобы управлять ссылками на источники в других книгах, нажмите на ленте Данные – Подключения – Изменить связи . В открывшемся окне отобразится весь список подключенных файлов и кнопки-команды:
- Обновить – принудительное обновление всех ссылок
- Изменить – указать новую книгу Excel, в которой располагаются подключенные данные
- Открыть – открывает документ-источник
- Разорвать связь – удаляет внешние ссылки из этой связи, заменяет их на значение
- Состояние – обновляет статус доступности файлов с данными
- Запрос на обновление связей – укажите программе, нужно ли обновлять данные при открытии файла
Если у Вас большой файл с несколькими листами, может понадобиться много времени на поиски внешних ссылок. Так как быстро найти внешние ссылки в документе Excel? Предложу рецепт. Все подобные ссылки имеют общий элемент – открывающая и закрывающая квадратные скобки, в которые записано имя файла-исходника. В других случаях такие скобки используются редко. Нажмите Ctrl+F для открытия окна поиска, в поле «Найти» введите квадратную скобку и нажмите «Найти все». В результатах поиска точно будут все внешние ссылки.
Применение внешних ссылок – самый простой и очевидный способ собрать данные из нескольких таблиц в одну. Но если данных достаточно много, этот метод неприменим. Тогда пользуемся инструментом «Консолидация».
Консолидация данных в одну таблицу
Этот инструмент упрощает сведение информации в одну таблицу данных, это удачный способ автоматизации процесса.
Рассмотрим его работу на примере. У нас есть 3 файла с данными о продажах трех подразделений компании. Нужно собрать общие показатели по организации, и сделать это быстро, ведь информация нужна «на вчера».
Давайте выполнять. Открываем все файлы-исходники и свод. Активируем «Свод». Ищем на ленте Данные – Работа с данными – Консолидация . Откроется окно подключения внешних данных.
Теперь пошагово выполняем:
- В поле «Функция» выбираем «Сумма» (или что-то другое, если нужно)
- В поле «Ссылка» указываем ссылку на данные в первом файле-источнике (вместе с шапкой). Лучше всего, указать столбцы полностью, например A:D . Тогда не нужно будет переопределять диапазон при добавлении новых данных.
- Нажимаем «Добавить», ссылка появляется в поле «Список диапазонов»
- Повторяйте п. 2-3, пока не добавите ссылки на все файлы-исходники
- Установите галочки «Подписи верхней строки» и «Значения левого столбца», чтобы Эксель сам подобрал заголовки шапки и категории в строках
- Установите галку «Создавать связи с исходными данными», тогда консолидация будет сделана с помощью ссылок на ячейки. Иначе – будут просто вставлены итоговые значения.
- Нажмите Ок для завершения настройки консолидации.
В итоге, в файле «Свод» появится сведенный список из таблиц всех подключенных файлов. Если установили галочку «Создавать связи с исходными данными», итоговая таблица будет структурирована, можно развернуть каждый пункт и увидеть детали по каждому подразделению отдельно
Если исходные таблицы изменились, можно переформировать свод. Для этого повторно откройте окно «Консолидация» и нажмите Ок.
Такой вот простой инструмент, решающий одну из самых противных задач в Эксель. Я предпочитаю применять именно его, ручная работа по внесению ссылок – не для меня. Рекомендую и Вам пользоваться. Хотя, более удачным решением будет применение сводной таблицы (когда это возможно), или создание собственной VBA-программы с детальными настройками сведения.
На этом оставлю Вас экспериментировать с Консолидацией, и приступаю к написанию поста о защите данных в Эксель. Читайте, эта информация сейчас, как никогда актуальна. До встречи!
Разорвать не рвущиеся связи в книги Excel
Инструмент “разорвать связи Excel” предназначен для, удаления устаревших связей на другие книги Excel. Которые не получается разорвать стандартным инструментом Excel.
В надстройке Excel Tools VBA реализовано два инструмента, для работы со связями в книгах Excel:
- Удаление всех связей из файла – удаляет все связи в выбранном файле.
- Выборочное удаление связей – удаляет только выбранные связи к удалению. Состоит из двух этапов. Создание списка всех связей в книге. И удаление связей по выбранному списку.
В процессе работы данных инструментов, есть возможность создания “backup” файла.
Принцип работы данных инструментов основан, на разархивирование файла и удаление файлов содержащих связи с другими файлами.