Zhukov_K Пользователь Сообщений: 711 |
У кого нибудь такое было, открываешь файл, что-то делаешь, закрываешь, а эксель не предлагает сохранить изменения |
Zhukov_K Пользователь Сообщений: 711 |
макросов нет, каких-то надстроек и других наворотов — нет, Эксель 2010 |
LVL Пользователь Сообщений: 903 |
|
marker_mc Пользователь Сообщений: 228 |
#4 27.05.2013 12:39:34 не уверен конечно, но попробуйте создать модуль в файле, вставить туда этот код
выполнить его, а потом закрыть ексель и в любом файле попробовать сделать изменение и закрыть |
||
Zhukov_K Пользователь Сообщений: 711 |
нет, не на любом, иногда вообще все нормально, а в некоторые дни такое случается.. |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
Voodoo magic… Правда, я в магию не верю. Поэтому:
других вариантов нет. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Muradin Пользователь Сообщений: 3 |
Так вы смогли решить эту проблему? |
Sobes Пользователь Сообщений: 212 |
Наверное прежде всего надо: |
D07 Пользователь Сообщений: 60 |
Добрый день уважаемые знатоки. В редакторе VBA ( Alt + F11), в окне Immediate (Ctrl + G) набрать (или скопировать туда) команду: Вот еще У меня ничего не находится поиском. Либо может не там ищу. Помогите пожалуйста. |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#10 03.10.2021 09:41:57 не находит — значит нет таких слов
или что-то с аналогичным смыслом Изменено: Ігор Гончаренко — 03.10.2021 09:43:40 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
sokol92 Пользователь Сообщений: 4445 |
#11 03.10.2021 15:56:58
Выгрузите проблемный файл (предварительно удалив из него конфиденциальные данные). Владимир |
||
Bivine Пользователь Сообщений: 1 |
#12 01.11.2021 15:04:40 Zhukov_K
, у меня была такая же проблема. Возникла, когда в компании внедрили анализ финансовых данных. В моём случаи проблема решилась её отключением. Переходим в параметры, далее в настройки, внизу «управление Настройки Excel», нажимаем «Перейти» и убираем галочку с «пакет анализа». Проблема должна исчезнуть и при закрытии файла Excel, при внесении каких-то поправок в файл, система будет каждый раз предлагать сохранить изменения или нет. Прикрепленные файлы
|
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос на Сохранение изменений при закрытии книги. Это можно сделать, указав состояние книги, в которой хранится сохраненное свойство, или подавить все оповещения для книги.
Дополнительные сведения
ПРИМЕЧАНИЕ. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, не выполняя либо подразумеваемых. Сюда относится, но не ограничивается подразумеваемым гарантийным обязательством о товаре или пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который вы продемонстрировали, и с инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить особенности конкретных процедур. Однако они не изменяют эти примеры для предоставления дополнительной функциональности или создания процедур, отвечающих вашим конкретным требованиям.
Чтобы подготовиться к реализации одного из примеров ниже, выполните эти действия в первую очередь.
-
Запустите Excel и откройте новую книгу.
-
Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.
-
В меню Вставка выберите пункт модуль.
-
Введите пример кода макроса на лист модуля.
-
Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
-
В Microsoft Office Excel 2003 и более ранних версиях Excel в меню Сервис выберите пункт макрос , а затем — макросы.
В Microsoft Office Excel 2007 в группе код на вкладке разработчик нажмите кнопку макросы .
Если вкладка разработчик
недоступна, выполните указанные ниже действия.
помощью. Нажмите кнопку Microsoft Office , а затем — Параметры Excel.
байт. В категории популярные в разделе Основные параметры работы с Excelвыберите пункт Показать
.
Флажок «Разработчик» на ленте и нажмите кнопку ОК. -
Выберите нужный макрос и нажмите кнопку выполнить.
Свойство Saved возвращает значение false , если после последнего сохранения книги были внесены изменения.
Для указания макроса, который должен выполняться при закрытии книги, можно использовать зарезервированное имя подпрограммы Auto_Close . Таким образом, вы можете управлять обработкой документа, когда пользователь закрывает документы в Excel.
Пример 1: Закрытие книги без сохранения изменений
Чтобы принудительно закрыть книгу, не сохраняя никаких изменений, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
ThisWorkbook. Save = true
End Sub
Если для свойства Saved установлено значение true, приложение Excel отправляет сообщение о том, что книга уже была сохранена, и после последнего сохранения изменения не произошел.
Свойство дисплайалертс программы можно использовать для той же цели. Например, следующий макрос выключает дисплайалертс , закрывает активную книгу без сохранения изменений, а затем снова включает дисплайалертс .
Sub Клосебук ()
Application. Дисплайалертс = false
Активеворкбук. Close
Application. Дисплайалертс = true
End Sub
Кроме того, можно использовать аргумент SaveChanges метода Close .
Следующий макрос закрывает книгу без сохранения изменений.
Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Пример 2: Закрытие книги и сохранение изменений
Чтобы принудительно сохранить изменения в книге, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
Если ThisWorkbook. Save = false, то
ThisWorkbook. Save End, если
End Sub
Эта подпроцедура проверяет, было ли для сохраненного свойства File задано значение false. Если да, то книга была изменена с момента последнего сохранения, и эти изменения будут сохранены.
Нужна дополнительная помощь?
02.04.2013, 17:21. Показов 26854. Ответов 1
Мои коллеги обратились ко мне за помощью.
У них не отображается диалог «Сохранить изменения в файле» в MS EXCEL 2007 при выходе без сохранения или при нажатии символа «x» в правом верхнем углу окна («Закрытие» MS Excel).
И, соответственно, теряются все сделанные в файле Excel изменения безо всяких предупреждений.
Такая проблема встречается уже у 2-х человек на данный момент.
У одного из них установлена Windows XP, насколько я знаю.
Каким образом можно избавиться от этой ошибки ?
0
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос на Сохранение изменений при закрытии книги. Это можно сделать, указав состояние книги, в которой хранится сохраненное свойство, или подавить все оповещения для книги.
Дополнительные сведения
ПРИМЕЧАНИЕ. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, не выполняя либо подразумеваемых. Сюда относится, но не ограничивается подразумеваемым гарантийным обязательством о товаре или пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который вы продемонстрировали, и с инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить особенности конкретных процедур. Однако они не изменяют эти примеры для предоставления дополнительной функциональности или создания процедур, отвечающих вашим конкретным требованиям.
Чтобы подготовиться к реализации одного из примеров ниже, выполните эти действия в первую очередь.
Запустите Excel и откройте новую книгу.
Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.
В меню Вставка выберите пункт модуль.
Введите пример кода макроса на лист модуля.
Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
В Microsoft Office Excel 2003 и более ранних версиях Excel в меню Сервис выберите пункт макрос , а затем — макросы.
В Microsoft Office Excel 2007 в группе код на вкладке разработчик нажмите кнопку макросы .
Если вкладка разработчикнедоступна, выполните указанные ниже действия.
помощью. Нажмите кнопку Microsoft Office , а затем — Параметры Excel.
байт. В категории популярные в разделе Основные параметры работы с Excelвыберите пункт Показать
. Флажок «Разработчик» на ленте и нажмите кнопку ОК.
Выберите нужный макрос и нажмите кнопку выполнить.
Свойство Saved возвращает значение false , если после последнего сохранения книги были внесены изменения.
Для указания макроса, который должен выполняться при закрытии книги, можно использовать зарезервированное имя подпрограммы Auto_Close . Таким образом, вы можете управлять обработкой документа, когда пользователь закрывает документы в Excel.
Пример 1: Закрытие книги без сохранения изменений
Чтобы принудительно закрыть книгу, не сохраняя никаких изменений, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
ThisWorkbook. Save = true
Если для свойства Saved установлено значение true, приложение Excel отправляет сообщение о том, что книга уже была сохранена, и после последнего сохранения изменения не произошел.
Свойство дисплайалертс программы можно использовать для той же цели. Например, следующий макрос выключает дисплайалертс , закрывает активную книгу без сохранения изменений, а затем снова включает дисплайалертс .
Application. Дисплайалертс = false
Application. Дисплайалертс = true
Кроме того, можно использовать аргумент SaveChanges метода Close .
Следующий макрос закрывает книгу без сохранения изменений.
Пример 2: Закрытие книги и сохранение изменений
Чтобы принудительно сохранить изменения в книге, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
Если ThisWorkbook. Save = false, то
ThisWorkbook. Save End, если
Эта подпроцедура проверяет, было ли для сохраненного свойства File задано значение false. Если да, то книга была изменена с момента последнего сохранения, и эти изменения будут сохранены.
клиент прислал мне Excel .xlsx документы, и каждый раз, когда я открываю один из них, а затем закрываю его, Excel спрашивает, хочу ли я Сохранить изменения, даже если я их не делал. Это не происходит ни с одним из моих других файлов Excel. Что здесь происходит?
в файлах нет макросов. Я использую Excel 2007.
10 ответов
Это происходит, когда что-то в файле изменилось. Много раз пользователь не понимает, есть элементы в файле, которые были обновлены или вычислены. Вот несколько примеров распространенных сценариев:
- в файле используется функция volatile. Примеры летучих формул приведены в разделе подробнее информационный раздел данной статьи.
- файл открыт в более новой версии и формулы были рассчитаны. См. статью в разделе Дополнительные сведения.
- формула, содержащая ссылку на формулу в другой книге и использующая изменяемые функции.
- общие фотографии.
- итерационные формулы.
- диаграммы, которые находятся на листах диаграмм или которые встроены в листы, но имеют свои исходные данные в другом рабочая тетрадь.
- код VBA, обновляющий книгу.»
этот список содержит случаи, упомянутые в других ответах, как возможности, а также некоторые другие.
одна из возможностей заключается в том, что .xlsx файл содержит внешние ссылки как минимум в одной ячейке. Eg
обычно, если вы откроете этот файл появится.
тем не менее, есть раздражает параметр, который бросает людей прочь в данных/редактировать ссылки/START UP PROMPT/Dont отображать оповещения и обновления ссылки, которые переопределяет этот запрос
к сожалению, когда закройте книгу по-прежнему появляется запрос на сохранение, который будет обновлять ссылки.
Это одна из возможных зацепок.
EDIT:
другая возможность .xlsx содержит формулу даты, например NOW() или TODAY() который предложит сэкономить при закрытии
Дамы и господа!
Можно ли сделать так, чтобы перед закрытием файла Excel не спрашивал «Сохранить изменения»?
Штатными или нештатными средствами, но добиться этого необходимо.
Позвольте всё же поинтересоваться — зачем?
Интересно же..
К делу — попробуйте по аналогии с «вордом» —
[DocWord.Close True]
И использовать в
«AutoExec — при запуске Word или загрузке глобального шаблона
AutoNew — при создании нового документа
AutoOpen — при открытии существующего документа
AutoClose — при закрытии документа
AutoExit — при закрытии Word или выгрузке глобального шаблона»
«Подробнее об использовании автоматически запускаемых макросов см. раздел Auto Macros справочной системы.»
Так что google & help ещё помогают 🙂
From: tigrafrog
2006-03-24 08:25 am (UTC)
У нас какая-то программа данные для себя вытягивает из экселевского файла.
При запуске этой программ открывается эксель, который после завершения процесса считывания должен закрыться, но не делает этого, выдавая табличку про изменения.
На самом деле никаких изменений программой в документ не вносится, просто он пересчитывается и данные меняются… В принципе, если отключить автоматический обсчёт листа, то таблички с вопросом об изменениях тоже не будет…
А google и help помогают только тем, кто знает как конкретно называется то, что он ищет. Перед тем как написать пост сюда я полчасика посикал и в гугле и в хэлпе.
From: miiiiia
2006-03-24 08:32 am (UTC)
258
25 июня 2004 года
SergeySV
1.5K / / 19.03.2003
Хм, прикольная получилась задачка, я раз десять подвесил свой Excel, прежде чем во всем разобрался и отладил код
Сразу поясню насчет параметра SaveAsUI, чтоб он больше нам не мешал — эта переменная в событии _BeforeSave всего лишь показывает как пользователь пытается сохранить файл: серез СОХРАНИТЬ или через СОХРАНИТЬ КАК, и все. Это для информации, соотв. присвоение этой переменной какого своего значение внутри события _BeforeSave не имеет никакого смысла. Тебе Excel эту переменную передал в качестве информации, по ByVal к тому же и то что ей что то еще пытаешься присвоить, на это Excel уже никакого внимание обращать не будет.
Теперь на счет твоих проблем с SaveAs внутри события _BeforeSave.
Тут складывается действительно забавная ситуация. Дело в том, что вызывая метод в SaveAs в этом событии мы порождаем опять же это событие, поэтому очень важно предусмотреть возможность выхода из него, не допустив зацикливания.
Происходит все следующим образом:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
строка1
ThisWorkbook.SaveAs «c:3.xls» ‘ строка2
строка3
End Sub
Мы нажимаем кнопку Сохранить в Excel’е.
попадаем в событие _BeforeSave на строчку1.
Переходим к строчке2 — ThisWorkbook.SaveAs «c:3.xls», которая порождает ВТОРОЕ событие _BeforeSave.
Поэтому со строчки2 мы вновь попадаем на строчку1.
Визуально это можно представить себе так, как если разместить рядом два одниковых куска кода процедуры Private Sub Workbook_BeforeSave и нарисовать стрелку перехода со строчки2 первого куска на второй кусок Private Sub Workbook_BeforeSave.
Эта аналогия будет полной еще в том смысле, что Excel отработает весь второй кусок и потом, ВНИМАНИЕ: вернуться в первый кусок на след. строчку после той, с которой его грубо прервали вызвав SaveAs (т.е. в нашем примере на строчку3)
Т.е. выполнение кода по строчка будет следующее:
строчка1 (_BeforeSave1)
строчка2 (тут мы вызываем еще одно _BeforeSave)
строчка1 (_BeforeSave2)
‘строчка2(_BeforeSave2)
строчка3 (_BeforeSave2)
строчка3 (вернeлись в первый _BeforeSave)
Хорошо видно что если не поставить какое-нибудь доп. условие на строчку2 (.SaveAs), то оно будет каждый раз порождает очередные _BeforeSave и мы так зациклимся.
Поэтому если внутри события _BeforeSave надо сохранить файл под другим названием, то бцдет например такой:
Код:
Dim lEvent As Long
Dim bolEx As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If lEvent = 0 Then
lEvent = 1
ThisWorkbook.SaveAs «c:3.xls»
ElseIf lEvent = 1 Then
lEvent = 0
bolEx = True
End If
If lEvent = 0 And bolEx Then
bolEx = False
Cancel = False
Else
Cancel = True
End If
End Sub
Чтобы посмотреть как работает этот код можешь открыть приложенный файл поставить breakpoint на If lEvent = 0 Then в событии _BeforeSave и нажать кнопку сохранить и двигаясь по шагам (через F8 ) увидишь как для второго события устанавливается Cancel=False, а при возвращаении к первому Cancel становится равным =True (если этого не сделать, то получим зависание Excel’я, он будет пытаться сохранить файл, который мы уже сохранили под другим именем, у Excel крышу тогда снесет)