Перевод старого Excel в новый формат: 5 проверенных способов без ошибок

Работаете с файлами Microsoft Excel, созданными 10-15 лет назад, и сталкиваетесь с предупреждением о "устаревшем формате"? Или нужно открыть .xls в современной версии программы, но данные отображаются криво? Проблема знакома многим: файлы Excel 97-2003 (.xls) не просто морально устарели — они имеют жёсткие ограничения, которые мешают работе. Например, листы в них не могут содержать больше 65 536 строк, а формулы часто вычисляются медленнее, чем в новых версиях.

Перевести старый Excel в новый формат (.xlsx, .xlsm) можно несколькими способами — от стандартного сохранения через меню до автоматизированных скриптов для пакетной обработки. Но важно учитывать нюансы: макросы в .xls не переносятся в .xlsx, а некоторые функции (например, ДВССЫЛ) могут работать иначе. В этой статье разберём все актуальные методы с пошаговыми инструкциями, таблицей совместимости форматов и ответами на частые ошибки.

Если вам нужно срочно открыть старый файл, но под рукой только смартфон или планшет — не беда. Современные мобильные версии Excel (даже бесплатные) поддерживают конвертацию "на лету". А для массовой обработки сотен файлов подойдут PowerShell-скрипты или специализированные утилиты вроде Kutools for Excel. Главное — не забывать про резервные копии: при конвертации сложных таблиц с вложенными диапазонами имён или пользовательскими функциями VBA риск потери данных выше.

Далее — подробные инструкции для разных сценариев: от ручного сохранения до автоматизации через Python.

1. Стандартная конвертация через "Сохранить как"

Самый простой способ — использовать встроенную функцию Excel. Он подходит для одиночных файлов без макросов или с минимальным количеством формул. Вот как это сделать:

Откройте файл .xls в любой версии Excel (2007 или новее). Перейдите в меню Файл → Сохранить как. В выпадающем списке "Тип файла" выберите:

  • 📄 Книга Excel (.xlsx) — для файлов без макросов;
  • 🤖 Книга Excel с поддержкой макросов (.xlsm) — если в файле есть VBA-код;
  • 📊 Книга Excel с поддержкой макросов и XML (.xlsm) — для максимальной совместимости.

После выбора формата нажмите Сохранить. Программа может выдать предупреждение о несовместимости некоторых функций — например, если в файле использовались диаграммы старого образца или объекты ActiveX. В этом случае рекомендуем прочитать раздел про типичные ошибки.

Проверить файл на наличие макросов (Alt+F11)

Убедиться, что все формулы работают корректно (F9)

Создать резервную копию оригинального файла

Закрыть другие книги Excel для ускорения процесса-->

⚠️ Внимание: Если в файле использовались пользовательские числовые форматы (например, для отображения телефонных номеров), после конвертации они могут сброситься. Проверьте ячейки с нестандартным форматированием после сохранения!

2. Пакетная конвертация через PowerShell

Если нужно обновить десятки или сотни файлов .xls, ручное сохранение каждого займёт часы. Автоматизировать процесс поможет скрипт на PowerShell. Он работает на Windows 10/11 и требует установленного Microsoft Excel (любой версии).

Скопируйте следующий код в блокнот и сохраните как convert-xls.ps1:

$excel = New-Object -ComObject Excel.Application

$excel.Visible = $false

$folderPath = "C:\Путь\к\папке\с\файлами\"

$files = Get-ChildItem -Path $folderPath -Filter "*.xls"

foreach ($file in $files) {

$workbook = $excel.Workbooks.Open($file.FullName)

$newPath = $file.FullName.Replace(".xls", ".xlsx")

$workbook.SaveAs($newPath, 51) # 51 = формат xlsx без макросов

$workbook.Close()

}

$excel.Quit()

Перед запуском скрипта:

  • 📁 Замените C:\Путь\к\папке\с\файлами\ на реальный путь;
  • 🔄 Для файлов с макросами замените 51 на 52 (формат .xlsm);
  • 🛡️ Запускайте скрипт от имени администратора (правый клик → "Запуск от имени администратора").

⚠️ Внимание: Скрипт не обрабатывает файлы с паролями! Если книга защищена, сначала снимите защиту вручную или добавьте в код строку $workbook.Unprotect("ваш_пароль") перед сохранением.

Ручное сохранение через "Файл → Сохранить как"

Пакетная обработка через PowerShell

Онлайн-конвертеры (Zamzar, CloudConvert)

Специализированные программы (Kutools, Ablebits)

Ещё не конвертировал старые файлы-->

3. Онлайн-конвертеры: плюсы и минусы

Если на компьютере не установлен Excel или файлов мало, можно воспользоваться онлайн-сервисами. Они бесплатны, но имеют ограничения по размеру файла (обычно до 50 МБ) и количеству операций в день.

Топ-3 проверенных сервиса:

СервисМакс. размер файлаПоддержка макросовСохранение форматирования
Zamzar50 МБ❌ Нет✅ Да
CloudConvert1 ГБ (с регистрацией)✅ Да (в .xlsm)✅ Да
Online2PDF100 МБ❌ Нет⚠️ Частично

Алгоритм работы одинаковый для всех сервисов:

  1. Загрузите файл .xls на сайт;
  2. Выберите целевой формат (.xlsx или .xlsm);
  3. Укажите email для получения результата (некоторые сервисы позволяют скачать файл сразу);
  4. Дождитесь обработки (от 30 секунд до 5 минут).

⚠️ Внимание: Онлайн-конвертеры не гарантируют конфиденциальность. Не загружайте файлы с чувствительными данными (паролями, финансовой информацией). Для таких случаев используйте офлайн-методы.

4. Конвертация с сохранением макросов и VBA

Файлы .xls с макросами требуют особого подхода. При обычном сохранении в .xlsx весь VBA-код будет утерян. Чтобы этого избежать:

Откройте файл в Excel и выполните следующие шаги:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA;
  2. Экспортируйте все модули: правый клик по модулю → Export File (сохраните в отдельную папку);
  3. Сохраните книгу как .xlsm через Файл → Сохранить как;
  4. Импортируйте модули обратно: в редакторе VBA правый клик → Import File.

Если макросы используют ссылки на объекты (например, кнопки или пользовательские формы), их придётся перенастроить вручную. Для ускорения процесса используйте надстройку VBA Code Cleaner (доступна в Excel 2016+).

Для массовой обработки файлов с макросами подойдёт скрипт на Python с библиотекой openpyxl (для .xlsx) и xlwings (для работы с VBA). Пример кода для извлечения макросов:

import xlwings as xw

wb = xw.Book("старый_файл.xls")

vba_code = wb.api.VBProject.VBComponents("Module1").CodeModule.Lines(1, -1)

with open("macro_backup.txt", "w") as f:

f.write(vba_code)

wb.save("новый_файл.xlsm")

wb.close()

Что делать, если макросы перестали работать после конвертации?

1. Проверьте, включена ли поддержка макросов в настройках Excel (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).

2. Обновите ссылки на объекты: в редакторе VBA нажмите Debug → Compile VBAProject, чтобы найти ошибки компиляции.

3. Если макросы ссылаются на ActiveX-элементы, их нужно пересоздать в новом файле (старые элементы не переносятся автоматически).

5. Проблемы после конвертации и их решения

Даже при успешной конвертации могут возникнуть ошибки. Вот самые распространённые и способы их исправления:

ПроблемаПричинаРешение
Формулы возвращают #ИМЯ?Изменились имена функций (например, ДВССЫЛINDIRECT)Замените функции на актуальные или установите пакет совместимости
Искажено форматирование ячеекНесовместимость пользовательских форматовПримените форматирование заново или используйте Специальная вставка → Форматы
Диаграммы отображаются некорректноСтарые типы диаграмм не поддерживаютсяПересоздайте диаграммы вручную или экспортируйте как изображения
Макросы не запускаютсяОтсутствует цифровая подпись или блокировка безопасностиПодпишите макросы сертификатом или добавьте папку в доверенные расположения

Если после конвертации файл стал "весить" значительно больше, проверьте:

  • 🔍 Наличие скрытых листов (правый клик по ярлычку листа → Показать);
  • 🗑️ Остатки удалённых данных (используйте CTRL + End, чтобы найти последнюю непустую ячейку);
  • 🖼️ Встроенные объекты (например, старые OLE-объекты, которые не отображаются, но занимают место).

6. Альтернативные программы для конвертации

Если Excel недоступен или не справляется с задачей, воспользуйтесь сторонними утилитами. Они часто предлагают дополнительные функции, например, пакетную обработку или восстановление повреждённых файлов.

Лучшие программы для конвертации .xls → .xlsx:

  • 🛠️ Kutools for Excel — плагин с функцией Convert File, поддерживает макросы и сводные таблицы;
  • 🔄 Ablebits Excel Convert — сохраняет все формулы и условное форматирование;
  • 📂 Total Excel Converter — конвертирует в .xlsx, .pdf, .csv и другие форматы;
  • 🆓 LibreOffice Calc — бесплатная альтернатива, открывает .xls и сохраняет в .xlsx без потерь (кроме макросов).

Для Mac подойдёт Numbers (входит в пакет iWork), но учтите, что он не поддерживает VBA. Если макросы критичны, используйте Parallels Desktop для запуска Windows-версии Excel.

⚠️ Внимание: Программы вроде Total Excel Converter могут добавлять водяные знаки в бесплатной версии. Для коммерческого использования приобретите лицензию.

7. Конвертация на мобильных устройствах

На смартфонах или планшетах конвертировать .xls в .xlsx можно с помощью мобильных версий Excel или специализированных приложений. Инструкция для Android/iOS:

Установите официальное приложение Microsoft Excel из App Store или Google Play. Откройте файл .xls (например, из облачного хранилища или почты). Нажмите на три точки в правом верхнем углу → ЭкспортКнига Excel (.xlsx). Файл сохранится в выбранное расположение.

Альтернативные приложения:

  • 📱 WPS Office — бесплатно, поддерживает форматы до Excel 95;
  • 📊 Polaris Office — сохраняет формулы и базовое форматирование;
  • 🔗 Google Таблицы — загрузите .xls в Google Drive, откройте как Google Таблицу, затем экспортируйте в .xlsx.

⚠️ Внимание: Мобильные версии Excel не поддерживают макросы. Если файл содержит VBA-код, используйте десктопную версию или облачные решения вроде Office 365 в браузере.

FAQ: Ответы на частые вопросы

Можно ли конвертировать .xls в .xlsx без Excel?

Да, для этого подойдут:

  • 🆓 LibreOffice Calc (бесплатно, кроссплатформенно);
  • 🌐 Онлайн-конвертеры (например, CloudConvert);
  • 🐍 Скрипты на Python с библиотекой pandas (для программистов).

Однако без Excel не получится сохранить макросы — для этого нужен оригинальный редактор или специализированные утилиты вроде Kutools.

Почему после конвертации пропали данные в некоторых ячейках?

Это typичная проблема при:

  • Использовании пользовательских числовых форматов (например, для телефонных номеров);
  • Наличии скрытых символов (пробелов, табуляций) в тексте;
  • Превышении лимита символов в ячейке (32 767 в новых версиях vs 255 в старых).

Решение: перед конвертацией примените к проблемным ячейкам стандартный формат (Общий) и удалите лишние символы через НАЙТИ/ЗАМЕНИТЬ (CTRL + H).

Как конвертировать файл с защитой паролем?

Если файл .xls защищён паролем, сначала снимите защиту:

  1. Откройте файл в Excel;
  2. Перейдите в Рецензирование → Снять защиту листа (или книги);
  3. Введите пароль;
  4. Сохраните файл как .xlsx.

Если пароль утерян, воспользуйтесь утилитами вроде Elcomsoft Advanced Office Password Recovery (платно) или PassFab for Excel. Бесплатные онлайн-сервисы для взлома паролей небезопасны — не загружайте конфиденциальные файлы!

Можно ли автоматизировать конвертацию для тысяч файлов?

Да, для этого подойдут:

  • 📜 PowerShell-скрипты (см. раздел 2);
  • 🐍 Python + openpyxl (для программистов);
  • 🔧 Kutools for Excel (функция Batch Convert).

Пример скрипта на Python для пакетной обработки:

import os

from openpyxl import load_workbook

folder = "путь_к_папке"

for file in os.listdir(folder):

if file.endswith(".xls"):

wb = load_workbook(os.path.join(folder, file), keep_vba=True)

wb.save(os.path.join(folder, file.replace(".xls", ".xlsm")), keep_vba=True)

Для запуска скрипта установите библиотеки: pip install openpyxl xlrd.

Что делать, если после конвертации файл не открывается?

Возможные причины и решения:

  • 🔧 Повреждение файла: воспользуйтесь встроенной утилитой Открыть и восстановить в Excel (Файл → Открыть → Обзор → Выделите файл → стрелка рядом с "Открыть" → Открыть и восстановить);
  • 📏 Несовместимость версий: откройте файл в Excel 2019/365 и сохраните заново;
  • 🛡️ Блокировка макросов: добавьте папку с файлом в доверенные расположения (Файл → Параметры → Центр управления безопасностью → Доверенные расположения).