Книга закрывает другую excel

 

Ronin751

Пользователь

Сообщений: 924
Регистрация: 10.04.2013

#1

30.03.2016 15:39:47

Доброго времени суток уважаемые форумчане! Столкнулся с не большой проблемой которая возникает при закрытии другой книги.
Есть основная книга — «Файл1» с формой из которой, по нажатию кнопки, открываю другую книгу — «Файл2»

Код
Workbooks.Open Filename:=ThisWorkbook.Path & "Файл2.xls"

Книгу «Файл2» скрываю с панели задач ( делая вид, что открывшаяся форма является частью активной книги)

Код
Private Sub Workbook_Open()
    ThisWorkbook.Windows(1).Visible = False
    UserForm1.Show
End Sub

При закрытии формы из книги «Файл2» , макрос, вместе с формой, закрывает и саму книгу Файл2, но форма книги «Файл1» должна оставаться видимой. А она тоже закрывается.
Подскажите пожалуйста, возможно ли закрыть книгу «Файл2», но оставить видимой форму из книги «Файл1»?
Заранее огромное спасибо всем!

Прикрепленные файлы

  • ФАЙЛЫ.rar (15.91 КБ)

Изменено: Ronin75130.03.2016 15:46:12

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Что за бред? Вы хотите закрыть файл, но оставить открытой форму из него?

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Ronin751

Пользователь

Сообщений: 924
Регистрация: 10.04.2013

#3

30.03.2016 15:44:26

Цитата
Вы хотите закрыть файл, но оставить открытой форму из него?

Здравствуйте! Нет. Я хочу закрыть книгу «Файл2», а форму из книги «Файла1» оставить видимой.

Изменено: Ronin75130.03.2016 15:48:06

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Что-то не пойму. Форма в файле 1 находится?
Далее открываете файл 2?
И хотите закрыть файл 2, не закрывая форму?
Или вопрос в том, что Вы из файла 1 открыли форму, потом открыли файл 2 и вместе с ним форму в нем? Что при этом происходит с формой 1? Она же должна быть либо скрыта, либо выгружена — иначе форма из файла 2 просто не сможет быть отображена.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Dima S

Пользователь

Сообщений: 2063
Регистрация: 01.01.1970

#5

30.03.2016 16:29:17

Не могу понять для чего такие танцы, но все же.

Во втором файле.

Код
Userform1.ShowModal = False

И вместо вот этого

Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    With ThisWorkbook
        .Windows(1).Visible = True
        .Close (False)
    End With
End Sub

Можно использовать

Код
Private Sub UserForm_Terminate()
ThisWorkbook.Close (False)
End Sub
 

Ronin751

Пользователь

Сообщений: 924
Регистрация: 10.04.2013

#6

30.03.2016 16:30:12

Цитата
Или вопрос в том, что Вы из файла 1 открыли форму, потом открыли файл 2 и вместе с ним форму в нем?

Да в «Файл1» есть форма, которая открыта в модальном режиме. На этой форме есть кнопка, с помощью которой открываю книгу «Файл2». В книге «Файл2» открывается своя форма. Пользователь, при этом, видит только новую форму(из Файл2) поверх старой (из Файл1). При закрытии формы из «Файл2» закрывается и сама книга «Файл2». Нужно, чтоб форма из «Файл2» и сама книга «Файл2» закрылись, а начальная форма из книги «Файл1» осталась видна.

Цитата
Что при этом происходит с формой 1? Она же должна быть либо скрыта, либо выгружена — иначе форма из файла 2 просто не сможет быть отображена.

С формой 1 ничего не происходит, она открыта как UserForm1.Show 0

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

А вы первую форму скрывайте перед отпрытием второй:
UsrForm.Hide
теперь загружаем второй файл
open….
UF2.Show
после закрытия файла 2
UsrForm.Show

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Ronin751

Пользователь

Сообщений: 924
Регистрация: 10.04.2013

Dima S

. Добрый день!
Я про UserForm_Terminate() и не думал. Спасибо Вам большое! Такая мелочь оказалась то.

 

Ronin751

Пользователь

Сообщений: 924
Регистрация: 10.04.2013

#9

30.03.2016 16:42:37

Цитата
А вы первую форму скрывайте перед отпрытием второй

Не закрываю, поскольку первая форма постоянно видна, до окончания работы с книгой «Файл1».

The_Prist

, спасибо Вам большое, что обратили внимание на тему и уделили время. Вариант предложенный

Dima S

устраивает абсолютно. Всем удачи и спасибо за помощь!

Как отследить закрытие другой книги?

Michael_S

Дата: Четверг, 21.03.2013, 22:02 |
Сообщение № 1

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Всем добрый день. Ситуация: есть две книги — одна под условным названием «Макрос.xlsm», вторая — «Результат.xlsx».
Книга «Макрос» при своем открытии создает вторую книгу, и по OnTime делает в «Результат» нужные вычисления. Такая заморочка потому, что вторя книга подключена к внешнему источнику данных, OnTime с этим подключением не работает и вносимые изменения ни каких реакций не вызывают. Это все или почти все) решено…
Вопрос.
Я закрываю книгу «Результат», «Макрос» мне не нужен — как закрыть и его? Забыл сказать, что окно «Макрос»- скрыто.
Если нужен пример — выложу…

 

Ответить

Alex_ST

Дата: Четверг, 21.03.2013, 22:25 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

В Personal в модуле ЭтаКНига в декларациях пишешь [vba]

Код

Private WithEvents App As Application   ‘ объявляем объект Application для того, чтобы можно было отлавливать события других книг

[/vba]
там же — обработчик события [vba]

Код

Private Sub Workbook_Open()
        Set App = Application   ‘ назначаем объект Application для того, чтобы можно было отлавливать события других книг
End Sub

[/vba]
Теперь когда откроешь Excel (ну и, естественно, Personal тоже) или просто в ручную выполнишь эту процедуру Workbook_Open, то кроме (General) и Workbook в левом верхнем «комбобоксе» VBE появится возможность выбирать из списка ещё и объект App
Выберешь его, а из правого «комбобокса» — процедуру обработки событие[vba]

Код

Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)

End Sub

[/vba]
А там уж у объекта Wb узнаешь его .Name и если оно = «Результат», то закрываешь книгу «Макрос»



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STПятница, 22.03.2013, 08:34

 

Ответить

RAN

Дата: Четверг, 21.03.2013, 22:44 |
Сообщение № 3

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Из файла, на который давал ссылку вчера

К сообщению приложен файл:

6925662.xls
(34.5 Kb)


Быть или не быть, вот в чем загвоздка!

 

Ответить

Michael_S

Дата: Четверг, 21.03.2013, 22:49 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Андрей, я ж вчера в стартовом посте писал

Цитата

Только мне не надо направление, пальцем укажите,

biggrin
Я тот файл смотрел, и даже на комп сохранил, но что там происходит — так и не понял. surprised

 

Ответить

RAN

Дата: Четверг, 21.03.2013, 22:56 |
Сообщение № 5

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

А я вчера до конца не понял, на что, и как далеко указывать надо.


Быть или не быть, вот в чем загвоздка!

 

Ответить

Wasilich

Дата: Четверг, 21.03.2013, 23:30 |
Сообщение № 6

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

Если закрывать через кнопку то так можно
[vba]

Код

Sub Кнопка_Выход()
      Application.ScreenUpdating = 0
      Windows(«Макрос.xlsm»).Activate
      ActiveWorkbook.Save ‘Если надо
      ActiveWorkbook.Close
      Application.ScreenUpdating = 1
      ActiveWorkbook.Save
      Application.Quit
End Sub

[/vba]

Сообщение отредактировал WasilicЧетверг, 21.03.2013, 23:32

 

Ответить

Alex_ST

Дата: Пятница, 22.03.2013, 08:32 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Michael_S

Дата: Пятница, 22.03.2013, 09:13 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Алексей, очень даже подходит. Справедливости ради первым мне это предложил Андрей (RAN) Здесь , но как этим пользоваться, я не понял. А тебе отдельное спасибо за разъяснение. Обоим «+» smile

 

Ответить

RAN

Дата: Пятница, 22.03.2013, 09:48 |
Сообщение № 9

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Леш, а зачем в персонал? Прямо в нужный файл. Файл из поста 3 при открытии открывает/создает книгу, сам прячется, а при закрытии созданной книги — закрывается.


Быть или не быть, вот в чем загвоздка!

 

Ответить

Alex_ST

Дата: Пятница, 22.03.2013, 11:44 |
Сообщение № 10

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

А, ну да, точно! Перемудрил sad
Просто в модуле ЭтаКнига файла «Результат» в обработчике события WorkbookBeforeClose прописать закрытие файла «Макрос»



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Michael_S

Дата: Пятница, 22.03.2013, 12:43 |
Сообщение № 11

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Цитата (Alex_ST)

Просто в модуле ЭтаКнига файла «Результат» в обработчике события WorkbookBeforeClose прописать закрытие файла «Макрос»

вообще-то я так и пОнял, имея ввиду пример Андрея (который видел раньше, но сразу не понЯл) smile

 

Ответить

6 / 7 / 1

Регистрация: 05.11.2013

Сообщений: 305

1

Макрос. Закрыть другую книгу

20.10.2018, 12:58. Показов 5062. Ответов 4


Студворк — интернет-сервис помощи студентам

всем доброго времени суток

Дано:
в одной папке две книги : КН1 и КН2
рабочая — КН2. Есть формулы, которые ссылаются на КН1. поэтому обе книги открыты.
по окончанию работы — надо закрыть (а лучше вообще удалить) КН1
какой здесь нужен макрос ?
Спасибо



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

20.10.2018, 12:58

4

Остап Бонд

Заблокирован

20.10.2018, 14:30

2

Лучший ответ Сообщение было отмечено 0mega как решение

Решение

Visual Basic
1
2
3
4
Sub такой_здесь_нужен_макрос()
Workbooks("КН1.xls").Close 0 'надо закрыть
Kill ThisWorkbook.Path & "КН1.xls"' (а лучше вообще удалить) КН1
End Sub

Тапками не кидайте, если расширение не угадал.



1



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

21.10.2018, 12:44

3

Цитата
Сообщение от 0mega
Посмотреть сообщение

Есть формулы, которые ссылаются на КН1. поэтому обе книги открыты.

— совсем не всегда обязательно нужно открывать книгу, на которую ссылаются формулы! Хотя некоторые (не всем!) действительно с закрытой не работают.



0



6 / 7 / 1

Регистрация: 05.11.2013

Сообщений: 305

21.10.2018, 16:39

 [ТС]

4

Цитата
Сообщение от Остап Бонд
Посмотреть сообщение

Тапками не кидайте, если расширение не угадал.

спасибо,
угадал
все работает



0



0 / 0 / 0

Регистрация: 22.02.2019

Сообщений: 21

13.09.2019, 13:28

5

Спасибо большое!



0



Хитрости »

30 Декабрь 2018              78763 просмотров


Невозможно разорвать связи с другой книгой

Прежде чем разобрать причины ошибки разрыва связей, не лишним будет разобраться что такое вообще связи в Excel и откуда они берутся. Если все это Вам известно — можете пропустить этот раздел :)

  • Что такое связи в 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) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего вызвать макросы(Alt+F8 или вкладка РазработчикМакросы), выбрать FindErrLink и нажать выполнить.
    Есть пара нюансов:

    • Прежде чем искать ненужную связь необходимо определить её ссылку: Данные(Data) -группа Запросы и подключения(Queries & Coonections)Изменить связи(Edit Links). Запомнить имя файла и записать в этой строке внутри кавычек:
      Const sToFndLink$ = «*продажи 2018*»
      Имя файла можно записать не полностью, все пробелы и другие символы можно заменить звездочкой дабы не ошибиться. Текст внутри кавычек должен быть в нижнем регистре. Например, на картинках выше есть связь с файлом «Продажи 2018.xlsx», но я внутри кода записал «*продажи 2018*» — будет найдена любая связь, в имени которой есть «продажи 2018».
    • Код ищет проверки данных только на активном листе
    • Код только выделяет все найденные ячейки(обычное выделение), он ничего сам не удаляет
    • Если надо подсветить ячейки цветом — достаточно убрать апостроф(‘) перед строкой
      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. Появится сообщение об ошибке вроде «Ошибка в части содержимого в Книге …». Соглашаемся. Появится еще одно окно с перечислением ошибочного содержимого. Нажимаем закрыть.

После этого связи должны быть удалены.
Если и это не помогло — скорее всего «битая» связь связана с ошибкой самого файла и лучшим решением будет перенести все данные в новый файл.

Так же см.:
Найти скрытые связи
Оптимизировать книгу


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Q: The Excel spreadsheet keeps closing itself while I’m working in it and also when it is open while working in another window. When I re-open it, a message says an error is causing the problem. I click on the Repair Now button this activity does not keep the spreadsheet from auto-closing every few minutes. Why does my Excel file keep closing itself? I have lost several worksheets due to the unexpected auto shutdown.

It seems that there is a conflict arising when you open the Excel application on your Windows PC. Usually, the conflict may start within the program itself, or with a third-party item that is associated with it. What’s more, if you check further on other Microsoft Office suites like Word, PowerPoint, if the problem occurs to the brotherhood applications, the problem is hugely pointed to the Microsoft Office installation and Windows operating system.

related articles

mircrosoft excel

If your Microsoft Excel file keeps closing automatically due to the manner of ‘copy and past’, ‘save (as) a file’, or just start typing, it is probably because Excel has a crash problem. Here, you can get 5 fixes to get rid of the issue.

Workable Solutions Step-by-step Troubleshooting
Fix 1. Check Compatibility Issue

Run Excel in Windows Compatibility Mode…Full steps

Fix 2. Repair MS Office Open Programs and Features in Control Panel…Full steps
Fix 3. Repair Corrupted Excel Files Free download a professional file repair tool…Full steps
Fix 4. Disable DOM Add-ins In Excel, go to File > Options > Add-ins…Full steps
Fix 5. Disable Conditional Formatting Under Home, click Conditional Formatting…Full steps
Fix 6. Launch Excel in Safe Mode Press Windows + R keys to bring up Run…Full steps

Fix 1. Check Compatibility Issue of MS Office and Windows 10

First and foremost, you should recall two things that may help you figure out when and what causes the crashing problem. [1] What is the version of the Excel application currently installed on your PC? [2] Did you update your Windows 10 system in recent days? Is the date happening to be the day the Excel file starts closing automatically? If you’ve done either of the things here, you should ask yourself: Is this version of Excel compatible with Windows 10? For an older version of Excel, like before 2013, even you don’t subject to the stability issue right now, we still recommend you turn to the new version to be able to run in Windows 10.

To resolve the incompatibility issue of Excel and Windows 10, except using the newer version of Excel, you can also try to run the present Excel in Windows Compatibility Mode taught by Microsoft Support.

Make older apps or programs compatible with Windows 10

Fix 2. Repair MS Office

When your Excel starts issues like crash, freezing, not responding, and like now closing itself automatically, you should be very careful with creating a new file because the file will be completely in danger of losing content. We advise you have a check on Word. See if the same problem happens to Word or other Office Suite like PowerPoint. If yes, then it’s sure about the Microsoft Office issue and it needs repair.

  • Open Programs and Features in Control Panel using a direct way: 

Press Windows +R keys and type appwiz.cpl and click OK

  • Locate Microsoft Office among the list, right-click on it, and choose Change

repair ms office to fix excel file closing automatically

  • Select Quick Repair and click the Repair button

repair ms office to fix excel file closing automatically

Fix 3. Repair Corrupted Excel Files

The Excel application may keep closing when you are opening and viewing a corrupted Excel workbook. Try to fix the damaged Excel files with a reliable file repair tool — EaseUS file repair software. This file repair software enables you to repair corrupted Word, Excel, and PPT from Microsoft Office 2019, 2016, 2013, 2010, & previous versions. 

EaseUS file repair software allows you to repair multiple Office files at a single point in time. What’s more, it still can fix corrupted PDF files and restore text, hyperlinks, forms, headers, footers, etc. Now, free download this file repair toolkit to fix any corrupted files quickly. 

Step 1. Launch EaseUS Data Recovery Wizard, and then scan disk with corrupted documents. This software enables you to fix damaged Word, Excel, PPT, and PDF files in same steps. 

select the disk with corrupted documents

Step 2. EaseUS data recovery and repair tool will scan for all lost and corrupted files. You can find the target files by file type or type the file name in the search box. 

find corrupted documents

Step 3. EaseUS Data Recovery Wizard can repair your damaged documents automatically. After file preview, you can click «Recover» to save the repaired Word, Excel, and PDF document files to a safe location.

repair corrrupt documents

Fix 4. Disable COM Add-ins

The COM add-ins are bad while editing on a large Excel file. It consumes memory a lot and easily causes genere issues in the Excel file to freeze and crash. So it’s highly suggested to disable add-ins in Excel.

  • In Excel, go to File> Options> Add-ins
  • Choose COM Add-ins from the drop-down and click Go
  • Uncheck all the checkboxes and click OK

disable add-ins to fix excel file closing automatically

Fix 5. Disable Conditional Formatting Rules

Did you use the Conditional Formatting Rules on some specific spreadsheets? The Conditional Formatting Rules are based on choosing a different color to highlight or differentiate information storage in a spreadsheet. If you’re facing the Excel file closing automatically a few times only in a particular Excel spreadsheet, you can consider not using this feature at the moment, to check if the Excel file can work normally again.

  • Under Home, click Conditional Formatting
  • Choose Clear Rules
  • Select Clear Rules from Entire Sheet
  • Close and restart the Excel file again

disable conditional formatting rules to fix excel file closing automatically

Fix 6. Launch Excel in Safe Mode

If the previous four solutions are not in line with your case, and you’re still in trouble, try to launch Excel in Safe Mode this time. If it’s not the problem within the program, it might be some unknown startup processes are interrupting its performance. 

  • Press Windows + R keys to bring up Run
  • Type excel.exe /safe and hit Enter

run excel in safe mode to fix excel file closing automatically

How to Recover Unsaved Excel Files After Automatically Closing

Data loss is the most direct consequence brought by the problem — Microsoft Excel file closing automatically. The good side is that Microsoft Office has the ability to save your draft while editing in a recoverable folder. The autosave feature is usually turned on by default, unless you have disabled it by yourself, it’s likely that you can recover an unsaved Excel file from the auto-recovery folder.

To recover unsaved Excel files from AutoRecover:

  • Open a new Excel file in Windows
  • Click File > Open > Recent Workbooks
  • Then check the recently used Excel document and find the unsaved file due to a sudden Excel close

recover unsaved excel file step 1

  • Click Recover Unsaved Workbooks and wait to let the program recover your closed Excel file

recover unsaved excel file step 2

  • On the new pop up window telling you that there is a recovered file that is temporarily stored on your computer, click Save As to store the Excel as a new file to a safe location on your PC

recover unsaved excel file step 3

Понравилась статья? Поделить с друзьями:
  • Книга ms excel для чего служит
  • Книга microsoft word 2019
  • Книга доходов усн в формате word
  • Книга microsoft office excel это
  • Книга должна содержать не менее одного видимого листа excel