Как в офисе.
Откроем нашу среду разработки Delphi (в моем случае это Delphi 2010). Создадим новый проект. Должен сказать, что работа с Excel происходит через объекты COM. Поэтому нам надо подключить в раздел USES нашего проекта модуль COMObj . Так же нам понадобится модуль ActiveX . Это будет выглядеть примерно вот так:
Проверка наличия установленного Microsoft Excel в операционной системе
Теперь собственно нам нужно, как писалось выше, определить наличие Excel в системе. Если он не будет обнаружен, то мы сообщим об этом пользователю и завершим программу. Для этого создадим простенькую функцию и объявим её в секции private нашей формы TForm1 :
то там можно будет обнаружить много разделов. Среди них есть как раз нужный нам «Excel.Application» (при условии, что данное ПО установлено в системе). К сведению: у этого раздела имеется еще два подраздела:
Параметры функции: — pszProgID : строка, содержащая ProgID. — clsid : получает CLSID.
Возвращаемые значения: — S_OK — CLSID создан успешно. — CO_E_CLASSSTRING — CLSID зарегистрированный для ProgID неверен. — REGDB_E_WRITEREGDB — ошибка записи в реестр. — E_OUTOFMEMORY — нет памяти. — E_INVALIDARG — указывает что один или более аргументов неверны. Стоит проверить правильность строки pszProgID. — E_UNEXPECTED — неизвестная ошибка.
Теперь на событии OnCreate формы TForm1 напишем следующий код:
Проверить, запущен ли Microsoft Excel
Далее давайте кинем на форму одну кнопку TButton. На событии OnClick будем писать код работы с Excel. Первое что мы сделаем, это добавим локальную переменную типа Variant для доступа к Excel с именем, например, FExcel :
Создание нового экземпляра Microsoft Excel
Создать новый экземпляр можно с помощью функции CreateOleObject . Давайте сразу напишем шаблон.
Операции над программой Microsoft Excel из Delphi
Теперь давайте рассмотрим, что вообще можно делать с Excel из Delphi. Операций достаточно много. И все описать просто невозможно. Но если в моем описании не окажется нужного вам метода, то огорчаться не стоит. Методы можно узнать самому. Открываете Excel. Затем в меню Сервис — Макрос — Начать запись . Там жмем ОК и выполняем необходимые нам операции в Excel. Когда закончите, жмем на Стоп . Затем нажимаем комбинацию клавиш Alt+F11 и перед нами открывается редактор Visual Basic . Вот в нем слева вверху есть древовидный список. В нем находится папка с названием Modules . В свою очередь в ней располагаются модули. Вот эти модули и есть ваши макросы. Кликнем два раза на тот модуль, который мы только что записали (если это первая запись, то модуль будет один). И тут будут отображены все ваши действия в виде исходного кода на языке Visual Basic. Вам остается только перевести это дело на Delphi. По поводу констант. В Delphi придется объявлять их самим. Посмотреть чему они равны можно в том же редакторе Visual Basic. Делается это так. Вписываем любую нужную нам константу в редакторе. Кликаем правой клавишей мыши, чтобы появилось контекстное меню. И там выбираем пункт «Quick Info» . При этом будет показана всплывающая подсказка со значением этой константы. Все просто! Единственное оговорюсь. В Visual Basic будет показано так, например: &HFFFFEFF4 , но Delphi этого не поймет. Надо объявлять в нем так: $FFFFEFF4 .
FExcel.Visible := true; Делать Excel видимым (True)/не видимым(False). При установке Visible в FALSE , программа Excel Так же пропадает из панели задач Windows.
FExcel.Application.EnableEvents := false; Показывать (True)/не показывать(False) системные сообщения Excel. Рекомендую отключать сообщения при построении отчета. А сам код писать после создания экземпляра Excel. Это увеличит скорость создания отчета. Пример:
FExcel.WindowState := xlMaximized; Состояние окна Excel: const xlMaximized = $FFFFEFD7 (или −4137) — развернуть Excel на весь экран. const xlNormal = $FFFFEFD1 (или −4143) — восстановить Excel. const xlMinimized = $FFFFEFD4 (или −4140) — свернуть Excel на панель задач.
FExcel.ScreenUpdating := false; Включить (True)/отключить (False) перерисовку окон. Используется для ускорения работы макроса, т.к. в это время не обновляется экран. Я в своих проектах не использовал данный метод, но возможно построение отчета будет выполняться быстрее, если отключить обновление окон Excel. После построения отчета перерисовку окон можно будет включить обратно.
FExcel.Workbooks.Open(path); Открытие существующей книги (где path — путь к фалу). Функция Open описана так:
UpdateLinks — Необязательный параметр. Определяет способ обновления связи в открываемом файле. Если данный аргумент отсутствует, то пользователю будет выдан запрос на определение способа обновления связей. Данный параметр имеет следующие допустимые значения: 0 — никакие связи не обновляются; 1 — обновляются внешние ссылки, но не обновляются удаленные ссылки; 2 — обновляются удаленные ссылки, но не обновляются внешние ссылки; 3 — обновляются оба типа ссылок
ReadOnly — необязательный параметр. Если файл имеет атрибут только для чтения, то при открытии его в Excel выдается соответствующее предупреждение*. Чтобы его игнорировать, передайте в качестве данного параметра True.
Format — необязательный параметр. При открытии текстового файла этот параметр определяет вид символов-разделителей. Ниже представлены допустимые значения данного аргумента: 1 — символы табуляции; 2 — запятые; 3 — пробелы; 4 — точка с запятой; 5 — разделители отсутствуют; 6 — вид разделителя определяется пользователем (с помощью параметра Delimiter).
Password — необязательный параметр, задающий строку пароля, необходимого для открытия защищенной рабочей книги. Если при открытии защищенной книги данный аргумент отсутствует, то пользователю будет выдан запрос на ввод пароля*.
WriteResPassword — необязательный параметр. Предназначен для задания пароля, необходимого для записи в рабочую книгу. Если при открытии защищенной книги данный аргумент отсутствует, то пользователю будет выдан запрос на ввод пароля*.
IgnoreReadOnlyRecommended — необязательный параметр. В случае задания ему значения True этот аргумент позволяет устранить вывод сообщения с рекомендацией открытия книги только для чтения (в том случае, если данная рабочая книга была сохранена с параметром Read-Only Recommended).
Origin — необязательный параметр. При открытии текстового файла этот параметр указывает, где был создан этот файл, что необходимо для правильного распознавания страницы кодировки. Значениями данного аргумента может быть одна из констант: xlMacintosh, xlWindows или xlMSDOS**. Если данный аргумент отсутствует, то используются текущие параметры операционной системы.
Delimiter — необязательный параметр. Если открывается текстовый файл и параметр Format имеет значение, равное 6, то этот аргумент определяет символ-разделитель.
Editable — необязательный параметр. Если файл является файлом MS Excel 4.0, то этот параметр при задании ему значения True позволяет открыть надстройку как видимое окно. По умолчанию ему присвоено значение False.
Notify — необязательный параметр. Если файл не может быть открыт для записи, то при задании данному аргументу значения True файл будет добавлен в список уведомления. Если данный аргумент равен False или отсутствует, то открыть файл будет невозможно.
Converter — необязательный параметр. Предназначен для определения индекса фильтра, который будет использован при открытии данного файла. Если фильтр не сможет распознать формат файла, то будут последовательно использованы все доступные фильтры.
AddToMRU — необязательный параметр типа Variant. Если данный параметр имеет значение True, то рабочая книга будет добавлена в список недавно использованных файлов. По умолчанию ему присвоено значение False.
Примечание: * Сообщения будут выведены на экран, если вы не отключили их с помощью: FExcel.Application.EnableEvents := false; Показывать (True)/не показывать(False) системные сообщения Excel.
** Delphi не знает о существовании констант, поэтому чтобы посмотреть их значения, нужно воспользоваться средствами VBA. Эти константы соответственно равны 1, 2 и 3.
FExcel.Workbooks.Add(path); // path — путь к фалу Создание новой книги. Причем создается стандартная книга с тремя листами. В этом методе можно указать стандартный тип шаблона Excel. Если же в нем указать имя (с полным путем) подготовленного файла (шаблоном может быть и «обычный» файл XLS, а не только файл XLT), то можно открыть книгу на диске как шаблон.
FExcel.Workbooks.Add(Template); Template — Необязательный параметр. Этот параметр определяет, как будет создана рабочая книга. Если этот параметр будет иметь значение строки, определяющей имя файла (включая путь) существующей рабочей книги, то создается рабочая книга с использованием данного файла как шаблона. В случае когда данный параметр является одной из констант: xlWBATExcel4IntlMacroSheet = 4; xlWBATExcel4MacroSheet = 3; xlWBATWorksheet = $FFFFEFB9 (или −4167); xlWBATChart = $FFFFEFF3 (или −4109); Создаваемая книга будет содержать один лист соответствующего типа. В том случае, если этот параметр отсутствует, то создается рабочая книга с количеством листов, определяемым значением свойства SheetslnNewWorkbook .
FileFormat — необязательный параметр. Данный параметр задает формат файла. Его значением может быть одна из констант, описанных в таблице 1 . В том случае, если файл уже существует, в качестве его формата по умолчанию будет назначен формат, использовавшийся при его предыдущем сохранении.
Password — необязательный параметр. Данный параметр определяет защитный пароль для сохраняемого файла. Пароль определяется строкой, содержащей не более 15 символов.
WriteResPassword — необязательный параметр. Предназначен для задания строки, определяющей пароль для сохранения файла в качестве файла только для чтения. При последующем открытии файла будет выдан запрос на ввод этого пароля, и если он не будет введен, то файл будет открыт в режиме только для чтения.
ReadOnlyRecommended — необязательный параметр. В случае присвоения ему значения True, последующее открытие файла на экране будет сопровождаться сообщением, говорящим о том, что этот файл рекомендуется открыть в режиме только для чтения.
CreateBackup — необязательный параметр. Определяет возможность создания резервного файла (значение True).
AccessMode — необязательный параметр. Этот параметр определяет режим доступа к рабочей книге и может иметь одно из следующих значений: xINoChange — режим доступа не изменяется (равно 1); xlShared — общие листы (равно 2); xlExclusive — монопольный доступ (равно 3).
ConflictResolution — необязательный параметр. Определяет способ разрешения конфликтов в том случае, если книга имеет общие листы. Значением данного свойства может быть значение одной из констант: xlUserResolution — отображает окно диалога для разрешения конфликтов (равно 1); xlLocalSessionChanges — автоматически принимаются изменения локального пользователя (равно 2); xlOtherSessionChanges — принимаются другие изменения вместо изменений локального пользователя (равно 3).
AddToMru — необязательный параметр. Позволяет поместить сохраняемый файл в список сохраненных файлов в меню Файл (File). Для реализации этой возможности значение этого аргумента должно равняться True.
TextCodePage — необязательный параметр. В локализованной версии MS Office не используется.
TextVisualLayout — необязательный параметр. В локализованной версии MS Office не используется.
FWorkbook.Close; Закрыть книгу. При этом если Excel видимый, то появится диалог с вопросом, хотите ли вы сохранить файл. Функция Close описана так:
FExcel.Workbooks[1].WorkSheets[1] .Name := Отчёт; Присваиваем первому листу в первой книге имя «Отчет». Если будем работать с самим листом, то чтобы не писать много кода мы можем просто объявить новую переменную, например, FSheet типа Variant :
И присвоим ей ссылку на наш Лист1 первой книги:
FSheet.PageSetup.Orientation := 2; Ориентация страницы (1 — книжная, 2 — альбомная).
FSheet.PageSetup.LeftMargin := X; Отступ от левого края страницы
FSheet.PageSetup.RightMargin := X; Отступ от правого края страницы
FSheet.PageSetup.TopMargin := X; Отступ от верхнего края страницы.
FSheet.PageSetup.BottomMargin := X; Отступ от нижнего края страницы.
FSheet.PageSetup.HeaderMargin := X; Высота верхнего колонтитула страницы.
FSheet.PageSetup.FooterMargin := X; Высота нижнего колонтитула страницы. Где X — это отступ в пикселях. Можно в принципе воспользоваться функцией перевода из, например, сантиметров в пиксели. Делается это так: FSheet.PageSetup.BottomMargin := FExcel.Application.CentimetersToPoints(1.5); Это будет полтора сантиметра, а как там переводится в пиксели это не наша забота.
FSheet.PageSetup.Zoom := false (или значение в процентах Z); Масштаб. Принимает следующие значения: Z — «Установить Z% от натуральной величины», где X — это количество процентов. Т.е. если вы решите включить масштабирование, то вам необходимо вместо FALSE подставить число, например: FSheet.PageSetup.Zoom := 100; (что означает 100%). FALSE — «Разместить не более чем на: X стр. в ширину и Y стр. в высоту, где: FSheet.PageSetup.FitToPagesWide := 1; Количество страниц в ширину (X). FSheet.PageSetup.FitToPagesTall := 100; Количество страниц в высоту (Y).
FSheet.PageSetup.CenterFooter := Стр. &С из &К ; Центральный нижний колонтитул. В нем будет информации о номере страницы из всего страниц. Данные переменные (&C, &K и т.п.) описаны в справочнике самого Excel. Аналогично: FSheet.PageSetup.LeftFooter:=Левый нижний колонтитул; FSheet.PageSetup.RightFooter:=Правый нижний колонтитул; FSheet.PageSetup.LeftHeader:=Левый верхний колонтитул; FSheet.PageSetup.CenterHeader:=Центральный верхний колонтитул; FSheet.PageSetup.RightHeader:=&7Правый верхний колонтитул; * Примечание: *для изменения размера шрифта добавьте к колонтитулу управляющий символ «&» и размер шрифта, в нашем случае 7
// const xlAutomatic = $FFFFEFF7 (или −4105) FSheet.PageSetup.FirstPageNumber := xlAutomatic; Номер первой страницы. В данном случае «Авто».
FSheet.PageSetup.Order := 1; Последовательность вывода страниц на печать (1 — вниз, затем вправо; 2 — вправо, затем вниз).
FSheet.PrintPreview; Предварительный просмотр страницы. Если вы не продолжите печать, а нажмете «Отмена», то будет вызвано исключение. Примечание : Excel, перед выполнением этой команды, обязательно должен быть видимым (FExcel.Visible := true;).
FSheet.PrintOut; Вывод страницы на печать. Функция PrintOut описана так:
To — необязательный параметр. Задает последнюю печатаемую страницу. Если этот аргумент отсутствует, то печать продолжается до последней страницы.
Copies — необязательный параметр. Задает количество печатаемых копий.
Preview — необязательный параметр, принимающий одно из двух значений: TRUE — приводит к выводу перед печатью окна предварительного просмотра; FALSE (значение по умолчанию) — печать производится без предварительного просмотра.
ActivePrinter — необязательный параметр. Задает имя активного принтера.
PrintToFile — необязательный параметр. Если данный параметр имеет значение True, то производится печать в файл. При этом пользователю выдается запрос на ввод имени файла.
Collate — необязательный параметр. Если ему задать значение True, то копии будут объединены. Пример:
Устранение неполадок, связанных с сохранением изменений в Excel
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Microsoft Excel автоматически сохраняет файл в процессе работы с книгой. Присваивает файлу имя временного файла и помещает файл в ту же папку, где хранится исходная версия. При ручном сохранении книги исходный файл удаляется, а временному файлу присваивается исходное имя файла.
Если этот процесс прерывается, возможно, сохранение книги было завершено с ошибками. Вы также можете найти один или несколько временных файлов в папке, где вы пытались сохранить файл. Кроме того, вы можете получить одно из оповещений или сообщений об ошибке.
Следующая информация может помочь вам определить возможные причины этой проблемы и предлагает решения для ее устранения.
Возможные причины, по которым документы не сохраняются
Выберите интересующую вас вкладку или перейдите в раздел «Быстрое разрешение».
- Надстройки сторонних разработчиков
- Разрешения
- Документ не сохранен
- Место на диске
- Антивирусное ПО
- Общий доступ к файлам
- Имя файла
Если не удается сохранить книгу в приложении Microsoft Excel, запущенном в безопасном режиме Windows, проблема может быть связана с использованием надстройки стороннего разработчика или файла, находящегося в одной из папок автозагрузки Excel. По умолчанию загрузочные файлы загружаются при запуске Excel.
Некоторые надстройки от сторонних разработчиков ПО предназначены для работы с существующими функциями Excel, тогда как другие обеспечивают удобный переход при использовании программы стороннего производителя. Обычно эти надстройки сторонних разработчиков не влияют на функциональность Excel. Тем не менее, могут быть затронуты некоторые функции, такие как сохранение файла.
Чтобы определить и исключить вероятность того, что надстройка Excel от стороннего разработчика или файл вызывают проблему с сохранением в Excel, попробуйте сохранить файл в безопасном режиме. Для этого выполните следующие действия:
Закройте программу Excel.
Нажмите Пуск и выберите пункт Программы.
При запуске Excel нажмите и удерживайте клавишу Ctrl до тех пор, пока не появится следующее сообщение:
Программа Excel обнаружила, что нажата клавиша CTRL. Запустить Excel в безопасном режиме?
Выберите Да.
Откройте новую книгу Excel и постарайтесь сохранить ее. Если это помогло, попробуйте еще раз сохранить проблемный файл.
Если теперь файл сохраняется правильно, то скорее всего причиной возникновения проблемы является пользовательская надстройка или файл в папке автозагрузки Excel. Для устранения проблемы необходимо найти и удалить эту надстройку или файл. После того как вы определили, какая надстройка или файл стали причиной проблемы, свяжитесь с поставщиком для получения дополнительной информации или обновления, которое решит проблему.
Для получения дополнительных сведений о безопасном режиме Microsoft Excel, нажмите в Excel клавишу F1, чтобы перейти в меню «Справка». Введите запрос безопасный режим в поле поиска, а затем нажмите кнопку Поиск, чтобы просмотреть нужные сведения.
Дополнительные сведения о том, как определить папки, которые Excel использует при запуске, и дополнительные параметры для отключения этой функции, см. в следующих статьях:
Чтобы можно было сохранить файл Excel, необходимы перечисленные ниже разрешения на работу с папкой, в которой предполагается сохранить файл.
- Разрешение на чтение
- Разрешение на запись
- Разрешение на изменение
- Разрешения на удаление
Не удается получить доступ к документу только для чтения
Это сообщение об ошибке отображается в том случае, если вы пытаетесь внести изменения в файл, который доступен только для чтения. Это связано с тем, что администратор или владелец файла не предоставил вам разрешения на редактирование файла. Если файл не содержит тег «только для чтения», но это сообщение об ошибке продолжает отображаться при попытке сохранить файл, то проблема может быть вызвана одной из следующих причин:
- Вы открываете существующий файл, а затем пытаетесь сохранить его.
- Вы сохраняете файл на внешнем или сетевом диске, и происходит сбой подключения.
При отсутствии указанных разрешений процесс сохранения в Excel не может быть завершен.
Отобразится одно из следующих сообщений об ошибке:
- Документ не сохранен
- Документ сохранен неполностью
- Документ не сохранен. Все ранее сохраненные копии были удалены.
- Документ не сохранен.
«Документ не сохранен» или «Документ сохранен неполностью»
При попытке создать временный файл процесс был прерван, возможно, по одной из следующих причин:
- Была нажата клавиша ESC
- Аппаратный сбой
- Программный сбой
- Проблема, связанная с носителем
Исходный файл все еще не изменен. Версия файла с текущими изменениями открыта в памяти до тех пор, пока не произойдет сбой на компьютере или рабочей станции.
Попробуйте сохранить файл на альтернативном диске.
Любые изменения, внесенные в последнюю версию, будут утеряны.
«Документ не сохранен». «Все ранее сохраненные копии были удалены» или «Документ не сохранен»
Процесс был прерван во время удаления исходного файла или переименования временного файла. Эта проблема возникает по тем же причинам, которые описаны в разделе «Документ не сохранен» или «Документ сохранен не полностью».
В этом случае исходный файл удаляется (хотя временный файл может быть доступен для чтения). Если на компьютере или рабочей станции произошел сбой, используйте временный файл. Если прерывание произошло по иной причине, то версия файла с текущими изменениями по-прежнему открыта в памяти. Сохраните файл на альтернативном диске.
Перед сохранением файла на носитель, например жесткий диск, внешний накопитель или сетевой диск, убедитесь, что на диске достаточно свободного места для сохранения файла. Если на целевом диске недостаточно свободного места, Excel не сможет завершить сохранение и отобразит приведенное ниже сообщение об ошибке:
Дополнительные сведения об этом сообщении об ошибке см. в следующих статьях:
Если на компьютере установлена или выполняется антивирусная программа, при попытке сохранить существующую книгу может появиться сообщение об ошибке. Ошибка может возникать из-за того, что некоторые антивирусные программы выполняют быстрое сканирование всех новых файлов, появляющихся на компьютере. Это сканирование иногда может прерывать процесс сохранения файла в Excel, в результате чего он не сохраняется должным образом.
Чтобы проверить, не конфликтует ли установленное антивирусное ПО с Excel, временно отключите его, затем попробуйте сохранить файл в Excel.
Если два пользователя работают с общей книгой и пытаются сохранить файл одновременно, может появиться сообщение об ошибке. Ошибка возникает из-за того, что Excel не может сохранить файл, если тот же файл сохраняется в то же время другим экземпляром Excel.
Для получения дополнительной информации об этом сообщении об ошибке см. Разблокировать файл, который был заблокирован для редактирования.
Если путь к сохраняемому или открываемому файлу Excel (включая имя файла) длиннее 218 знаков, может появиться приведенное ниже сообщение об ошибке.
Недопустимое имя файла.
Процесс сохранения файла
Когда приложение Excel сохраняет файл, оно делает это в соответствии с описанной ниже процедурой.
- В целевой папке, указанной в диалоговом окне Сохранить как, Excel создает временный файл со случайным именем (например, Cedd4100 без расширения имени файла). В этот временный файл записывается вся книга.
- Если сохраняются изменения существующего файла, Excel удаляет исходный файл.
- Excel изменяет имя временного файла, присваивая ему имя, указанное в диалоговом окне Сохранить как (например, Book1.xls).
Другие процессы, выполняемые на компьютере, могут нарушить процесс сохранения файла в Excel. Такие проблемы могут возникнуть в том случае, если выполняется доступ к временному файлу Excel до завершения процесса сохранения файла. (например, если локальная антивирусная программа блокирует временный файл с целью его проверки, из-за чего он не может быть переименован). Таким образом, вы должны отслеживать установку нового программного обеспечения и обновлений. Информация о таких процессах, которые были запущены до того, как вы столкнулись с этой проблемой, может быть полезной в том случае, если эта статья не помогла исправить вашу проблему и вам пришлось обратиться в службу поддержки Майкрософт.
Быстрое разрешение проблемы
Если какая-либо из вышеуказанных причин не относится к вашей ситуации или вам по-прежнему не удается сохранить книги, попробуйте следующие варианты, чтобы сохранить файлы в Excel. Чтобы узнать больше о шагах, выберите изображение шеврона слева или заголовок параметра.
Сохранение книги с новым именем файла
Перемещение исходных листов в новую книгу
Сохранение файла в другом формате Excel
Попробуйте сохранить книгу в другом месте
Попробуйте сохранить записную книжку в другом месте, например, на локальном жестком диске, сетевом диске или съемном диске.
Попробуйте сохранить новую книгу в исходном месте
Создайте книгу Excel.
В меню Файл выберите команду Сохранить как.
В диалоговом окне Сохранить как выполните указанные ниже действия.
Попробуйте сохранить книгу в безопасном режиме
Перезапустите Windows в безопасном режиме и попробуйте сохранить книгу на локальный жесткий диск.
Дополнительные ресурсы
Чтобы избежать проблем с сохранением документов должным образом, мы рекомендуем включить автосохранение. Дополнительные сведения см. в разделе Что такое автосохранение?
Если при использовании Excel у вас возникли определенные проблемы, перейдите на следующий веб-сайт, чтобы найти более подробную информацию о версии вашей программы:
Подробный обзор параметров
В следующем разделе приводится более подробное описание этих вариантов.
Проблемы при сохранении книги Microsoft Excel могут возникнуть, если выполняются какие-либо из указанных ниже условий.
- Пользователь пытается сохранить книгу Excel на сетевом диске при отсутствии необходимых для этого разрешений.
- Вы пытаетесь сохранить книгу Excel на диске с недостаточным объемом свободного места.
- Утрачено соединение с книгой Excel.
- Имеется конфликт с антивирусной программой.
- Предпринимается попытка сохранить общую книгу Excel.
- При сохранении книги Excel превышено ограничение на длину пути (218 знаков).
Обходные пути для сохранения книг Excel
Для временного решения этой проблемы и сохранения работы перед началом устранения неполадок воспользуйтесь следующими способами. Возможно, восстановить текущий файл в его текущем виде не удастся — это зависит от причины проблемы. Однако следующие способы часто оказываются полезны. Они расположены по степени сохранности формата (с учетом попытки сохранить файл в формате, максимально близком к исходному).
Описанные ниже способы не всегда позволяют сохранить все последние изменения, форматирование и параметры, специфичные для используемой версии Excel. Они предназначены для сохранения файла в форме, допускающей его использование. Вам потребуется сохранить файл на локальный жесткий диск, используя уникальное имя файла.
Вариант 1. Сохранение книги с новым именем
- В меню Файл выберите команду Сохранить как.
- Сохранение книги с уникальным именем
Вариант 2. Перемещение исходных листов в новую книгу
Добавьте лист заполнителя в книгу, Для этого нажмите Shift+F11.
Этот лист требуется потому, что после перемещения всех необходимых листов данных в книге должен остаться хотя бы один лист.
Сгруппируйте все листы (кроме фильтра). Для этого щелкните первый лист данных, затем, удерживая клавишу Shift, щелкните последний лист данных.
Щелкните сгруппированные листы правой кнопкой мыши и выберите команду Переместить или скопировать.
В списке В книгу выберите пункт (Новая книга).
Нажмите OK.
В результате этих действий активные (сгруппированные) листы должны переместиться в новую книгу.
Если в книге содержатся макросы VBA, скопируйте модули в новую книгу.
Вариант 3. Сохранение файла в другом формате Excel
- В меню Файл выберите команду Сохранить как.
- В списке Тип файла выберите формат файла, отличный от текущего. Если используется приложение Microsoft Excel 2007 или более поздней версии, сохраните файл в формате XLSX или XLSM вместо XLS.
Вариант 4. Попробуйте сохранить книгу в другое место
Попробуйте сохранить книгу в другом месте, например, на локальном жестком диске, сетевом диске или съемном диске. Если вам удалось это сделать, возможны следующие причины проблемы:
- Конфликт с антивирусной программой
- Отсутствие необходимых разрешений
- Чрезмерная длина имени файла
- Конфликт общего доступа к файлу
Вариант 5. Попробуйте сохранить новую книгу в исходное место.
Чтобы сохранить новый файл Excel в первоначальном месте, выполните следующие действия:
Создайте книгу Excel.
В меню Файл выберите команду Сохранить как.
В диалоговом окне Сохранить как выполните указанные ниже действия.
- В поле Папка щелкните папку, в которой хранится исходная книга.
- В поле Имя файла введите имя для нового файла.
- Выберите Сохранить.
Если новую книгу удается сохранить в первоначальном месте, проблема может быть вызвана указанными ниже причинами.
- Чрезмерная длина имени файла
- Конфликт общего доступа к файлу
Если новую книгу не удается сохранить в первоначальном месте, проблема может быть вызвана указанными ниже причинами.
- Нехватка свободного места на диске
Если на диске достаточно свободного места, попробуйте способ 3.
Вариант 6. Попробуйте сохранить книгу в безопасном режиме
Перезапустите Windows в безопасном режиме и попробуйте сохранить книгу на локальный жесткий диск.
Примечания.
- Если для сохранения книги используется сетевая папка, перезагрузите Windows в безопасном режиме с поддержкой сети и попытайтесь сохранить книгу еще раз.
- Для устранения неполадок в Microsoft Excel 2010 и более поздних версиях нельзя использовать безопасный режим Windows.
Дополнительные сведения о запуске Windows в безопасном режиме см. Расширенные параметры запуска (включая безопасный режим).
Если книга сохраняется после перезагрузки Windows в безопасном режиме, попытайтесь сохранить файл еще раз. Для этого выберите в меню Файл пункт Сохранить.
Если книга не сохраняется после перезагрузки Windows в безопасном режиме, проблема может быть вызвана указанными ниже причинами:
- Использование надстроек сторонних компаний
- Конфликт с антивирусной программой
- Отсутствие необходимых разрешений
- Чрезмерная длина имени файла
Дополнительная информация
Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.