работаю с базой 45 Мб xlsb. Excel 2010 за последний год несколько раз "неудачно сохранялась" при открытии сохраненного файла Excel белеет и вываливается в ошибку приложения
приходится всегда сохранять в новый файл и проверять, чтобы он открывался и если он не открывается - то открывать прошлую версию, вносить те же самые изменения и заново сохранять. часто размер файлов (ранее сохраненного и вновь сохраненного) отличается на килобайты. хотя изменения абсолютно такие же (даже если ввести в пустую ячейку "123" ) один раз вообще пришлось откатываться на неделю назад, потому что текущая ветка изменений и сохранений базы дошла до того, что при любом изменении ячейки и пересохранении - файл 100% вываливался с ошибкой приложения. а сегодня так вообще сохранился так, что файл открывается, но при нажатии на Ctrl+P или при прохождении макросом строки "With ActiveSheet.PageSetup ..." также вываливается в белеющий экран с ошибкой приложения файл выложить не могу - там куча данных. а как то обрабатывать файл потребуется около 1-2 дня (уже пытался, чтобы все-таки выложить сюда). а если удалить 99% информации либо все листы, то ошибка исчезает. хотя пол года назад, когда мне все это надоело и я решил заново создать базу с нуля - при копировании нескольких модулей с макросом в чистую книгу, которая была сохранена - файл тоже вываливался в ошибку при открытии. в общем сплошная мистика. и как ее лечить - непонятно
было ли у вас такое и как это все хотя бы диагностировать?
может перейти на Акцесс? или что то более подходящее для базы. А так можно попробовать облегчить файл (удалить всякие ненужные штуки, если они есть), а далее наверное методом тыка искать отчего файл вылетает (делать копии и удалять или по диапазону, и смотреть на поведение файла, или по листу удалять, или макросы смотреть) причин много наверное может быть.
alexthegreat пишет: а далее наверное методом тыка искать отчего файл вылетает
так я тоже делал, удаляя определенный лист, потом пересохраняя файл без него. удалял точно так же отдельные модули с макросами. но ошибка может появиться, может не появиться. за несколько дней "испытаний" так и не удалось поймать ошибку эту и причину
1. 45 Мб, да еще в .xlsb, многовато. Это он только хвастается, что миллионы строк, на самом деле Excel не любит большие объемы информации. 2. Возможно, код шалит. Попробуйте поработать с отключенными макросами.
часто ошибка не появляется, если не включать макросы. (в данном случае так же. если не включать - Ctrl+P срабатывает. если включить макросы - Ctrl+P сразу вываливает в ошибку) хотя например вчера сохранились файлы, которые не открывались. выскакивала ошибка. но после перезагрузки чудным образом открылись без ошибки. хотя только что перезагрузился и это не помогло с пропуском ошибки в текущем файле может быть это память компьютера, которую нужно прогонять мемтестом каким-нибудь?
правильно ли я понимаю, что ни с чем подобным никто не встречался? про большие базы - понял, что нужно сокращать до оперативного минимума. а весь архив хранить например в отдельных файлах, раз это так критично
Можно макросы держать в другой книге (даже если нужны макросы событий - можно на событие оставить одну строку с вызовом макроса из другой книги с параметром-диапазоном). Базу (архив, и даже в принципе текущую) можно хранить например в текстовом файле - места займёт немного, а если его ещё поджать раром...
Добрый день. Вы уверены что ваша база в формате XLSB весит 45 МБ? Поесню свой вопрос - нет ли у вас там условного форматирования и "объектов" Самому пару раз пришлось чистить тяжелые файлы колег, которые весили как слон. Притом как я заметил именно наслоение условного форматирования и кучи "объектов" очень сильно тормозят эксель. Потом, я бы вам посоветовал удалить все макросы (в копии) и посмотреть разницу - сколько места занимают они? Для примера - моя база без макросов в этом формате где-то на 10 тыс строк и 25 столбцов занимает 2,5 мб.- сколько же информации в вашем файле?
Dyarushin пишет: Вы уверены что ваша база в формате XLSB весит 45 МБ
два листа на 90 тысяч строк на 35 колонок. плюс еще 17 листов с оперативным объемом до 7 тысяч (половина листов на 7 тыс строк, половина на пару тысяч. на основном расчетном листе 500 колонок). а из элементов - всего штук 20 кнопок и штук 10 условий форматирования. макросов немного - всего 1700 строк, поэтому да, "чистых" данных там хватает. скрытых объектов и фигур нет, потому что файл написан мной с нуля и третьи лица не допускаются, а когда нужно, то ячейки копируются исключительно на ПКМ -> вставить значения. единственное, что файл писался на формулах, поэтому все расчеты в формулах. переводить в макросы конечно нужно, но система расчетов часто меняется, а на макросах менять сложнее для тех, кто не привык.
Для начала надо узнать где ошибка: сохраняется ли файл с ошибкой, или открывается с ошибкой. Судя по тому, что файл открылся после перезагрузки компьютера, который до этого не открывался, я склоняюсь ко второму варианту. Первый вопрос:
Цитата
при открытии сохраненного файла Excel белеет и вываливается в ошибку приложения
Это только на вашем компьютере? Пробовали ли вы его открывать на другом компьютере? Желательно попробовать сохранить и открыть вот этот файл также на чужом железе.
Цитата
один раз вообще пришлось откатываться на неделю назад, потому что текущая ветка изменений и сохранений базы дошла до того, что при любом изменении ячейки и пересохранении - файл 100% вываливался с ошибкой приложения.
Второй вопрос: могут ли быть проблемы из за надстроек экселя?
vikttur пишет: ...на самом деле Excel не любит большие объемы информации.
это конечно слабость. даже "банально" загрузить 40 тысяч картинок (в абсолютно новый пустой файл), не важно размером 20х20 или 300х300 пикселей - в любом случае начинает тормозить при изменении любой ячейки. а для базы это можно сказать копейки. всего лишь 200 строк по 200 картинок. это хорошо заметно - если картинки загрузить как shapes поверх листа - то ввести например единичку с клавиатуры в любую ячейку - уже занимает пару секунд. а если эти же картинки загрузить в скрытые комментарии, то ввести единичку в ячейку в принципе быстрее в несколько раз, хоть и работа с листом все равно тормозится
или сейчас загружаю совершенно в новый файл 30 тысяч txt файлов по 15 Кб. по одному файлу в ячейку для обработки. первые 100 файлов загружает за 0,22 секунды. то есть весь объем он должен загрузить за 66 секунд. а по факту за полтора часа дошел до 18 тысяч. Такое чувство, что каждый раз при добавлении новой информации Excel перепаковывает весь файл. и на сотнях, тысячах это не так заметно, а когда начинаются десятки тысяч - то работать довольно сложно. прямая экспоненциальная зависимость по времени от количества уже находящейся информации в файле
Табличный процессор — категория программного обеспечения, предназначенного для работы с электронными таблицами. Изначально табличные редакторы позволяли обрабатывать исключительно двухмерные таблицы, прежде всего с числовыми данными, но затем появились продукты, обладавшие помимо этого возможностью включать текстовые, графические и другие мультимедийные элементы. Инструментарий электронных таблиц включает мощные математические функции, позволяющие вести сложные статистические, финансовые и прочие расчеты.
ну вот опять. файлу всего пара дней. писал макрос и последние три часа перезаписывал в текущую версию файла и теперь файл не открывается, а вываливается с ошибкой как в первом сообщении (прошлая версия сохраненная 3 часа назад в отдельном файле открывается нормально) при попытке достать из него vbaProject.bin и закинуть в чистый xlsb файл - Excel этот vba код удаляет из чистого файла и открывает файл без кода либо тупо виснет с ошибкой приложения, не открыв файл. получается он виснет из-за vba кода. даже в тех случаях, когда файл открывается не из доверенных рабочих папок с отключенными макросами
так новому файлу итак 2 дня отроду, кода всего лишь 800 строк. и он построен на очень простой логике из публичных функций если таких вылетов ни у кого нету, то наверное память прогоню через memtest, еще иногда 2013й офис умеет воскрешать с частичной потерей форматирования такие битые файлы
вот и сейчас открыл этот битый файл в 2013й версии и благополучно забрал свой код
у меня файлы по 500 мб (от 300 до 900 тыс строк) правда, только таблицы со статическими данными + вычисляемые столбцы с формулами макросов нет, форматирования нет таблицы только трансформированы в т.н. "умные" все прочие расчеты - в отдельных файлах
ну то, что нет макросов и форматирования - это хорошо. я в файл базы, та, что в первом сообщении уже ничего не могу добавить. если расширяю функционал - пару любых столбиков с формулами - 99%, что при сохранении в новый файл и попытке открыть - он не откроется точно также и с кодом. добавляю пару строк кода - тоже 99% вылетает. поэтому добавляю туда только по 300 строчек в месяц, не изменяя функционала, пока держится старик
KUDRIN пишет: было ли у вас такое и как это все хотя бы диагностировать?
Было и есть. Есть у меня одна надстройка ,больше 20 тыс строк кода. Сам проект VBA около 4 метров. Иногда аналогичный вылет, как правило ,после добавления нового класса Заметил особенность,если вылетает в 2010 офисе,открывается без проблем в 2007.и наоборот. Открыл ,сохранил проект,закрыл. Открываю другим офисом.В причины не вникал,да и некогда.
Примерно такая ситуация (вылетает при открытии 45Мб файл в Ехсеl2013), решилась следующим образом - открыл данный файл в 2007 версии, он там написал, что не может прочитать какие-то данные, и что-то там из него при восстановлении удалил, после этого восстановленный файл сохранил, и он теперь в 2013 версии нормально открывается... пока по крайней мере...
Скорее всего это сам excel "глючит", "неверно" работает с памятью. У меня на таких объемах 32-bit версия всегда выдавала нехватку ресурсов. После перехода на 64-bit либо вылетала, либо "портила" файл. Лечил так: если файл испорчен 2010, то открываю-восстанавливаю 2013, или наоборот (но это гораздо реже). Когда это перестало помогать перешел на сервер MariaDB. После этого в файлах, как правило, присутствует одна таблица с отчетом, файл на практике больше 4,5 Мб не получается. Все хранение и вся обработка - на сервере.
Doober написал: Заметил особенность,если вылетает в 2010 офисе,открывается без проблем в 2007.и наоборот. Открыл ,сохранил проект,закрыл.
спасибо, очень ценный коментарий. примерно пол года назад пересохранил файл через другую версию офиса - с тех пор проблем пока нет. хотя раньше добавление нескольких колонок с данными, либо даже добавление одной строки в VBA код - после изменений на 90% сохранялся "битый" файл