Страницы: 1
RSS
Вылетает Excel с базой 45 Мб, временами
 
работаю с базой 45 Мб xlsb. Excel 2010
за последний год несколько раз "неудачно сохранялась"
при открытии сохраненного файла Excel белеет и вываливается в ошибку приложения



приходится всегда сохранять в новый файл и проверять, чтобы он открывался
и если он не открывается - то открывать прошлую версию, вносить те же самые изменения и заново сохранять. часто размер файлов (ранее сохраненного и вновь сохраненного) отличается на килобайты. хотя изменения абсолютно такие же (даже если ввести в пустую ячейку "123" )
один раз вообще пришлось откатываться на неделю назад, потому что текущая ветка изменений и сохранений базы дошла до того, что при любом изменении ячейки и пересохранении - файл 100% вываливался с ошибкой приложения.
а сегодня так вообще сохранился так, что файл открывается, но при нажатии на Ctrl+P или при прохождении макросом строки "With ActiveSheet.PageSetup ..." также вываливается в белеющий экран с ошибкой приложения
файл выложить не могу - там куча данных. а как то обрабатывать файл потребуется около 1-2 дня (уже пытался, чтобы все-таки выложить сюда). а если удалить 99% информации либо все листы, то ошибка исчезает. хотя пол года назад, когда мне все это надоело и я решил заново создать базу с нуля - при копировании нескольких модулей с макросом в чистую книгу, которая была сохранена - файл тоже вываливался в ошибку при открытии. в общем сплошная мистика. и как ее лечить - непонятно

было ли у вас такое и как это все хотя бы диагностировать?
Изменено: KUDRIN - 07.11.2014 10:24:46
 
Переходите на базы данных. Такой размер для экселя, имхо, слишком велик.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
может перейти на Акцесс? или что то более подходящее для базы.  А так можно попробовать облегчить файл (удалить всякие ненужные штуки, если они есть), а далее наверное методом тыка искать отчего файл вылетает (делать копии и удалять или по диапазону, и смотреть на поведение файла, или по листу удалять, или макросы смотреть) причин много наверное может быть.
 
Цитата
alexthegreat пишет: а далее наверное методом тыка искать отчего файл вылетает
так я тоже делал, удаляя определенный лист, потом пересохраняя файл без него. удалял точно так же отдельные модули с макросами.
но ошибка может появиться, может не появиться. за несколько дней "испытаний" так и не удалось поймать ошибку эту и причину
Изменено: KUDRIN - 07.11.2014 10:30:45
 
1. 45 Мб, да еще в .xlsb, многовато. Это он только хвастается, что миллионы строк, на самом деле Excel не любит большие объемы информации.
2. Возможно, код шалит. Попробуйте поработать с отключенными макросами.
 
Цитата
Попробуйте поработать с отключенными макросами.
часто ошибка не появляется, если не включать макросы.
(в данном случае так же. если не включать - Ctrl+P срабатывает. если включить макросы - Ctrl+P сразу вываливает в ошибку)
хотя например вчера сохранились файлы, которые не открывались. выскакивала ошибка. но после перезагрузки чудным образом открылись без ошибки. хотя только что перезагрузился и это не помогло с пропуском ошибки в текущем файле
может быть это память компьютера, которую нужно прогонять мемтестом каким-нибудь?

правильно ли я понимаю, что ни с чем подобным никто не встречался? про большие базы - понял, что нужно сокращать до оперативного минимума. а весь архив хранить например в отдельных файлах, раз это так критично
Изменено: KUDRIN - 07.11.2014 11:17:09
 
Можно макросы держать в другой книге (даже если нужны макросы событий - можно на событие оставить одну строку с вызовом макроса из другой книги с параметром-диапазоном).
Базу (архив, и даже в принципе текущую) можно хранить например в текстовом файле - места займёт немного, а если его ещё поджать раром...  :)
 
Цитата
работаю с базой 45 Мб xlsb. Excel 2010
Добрый день. Вы уверены что ваша база в формате XLSB весит 45 МБ? Поесню свой вопрос - нет ли у вас там условного форматирования и "объектов" Самому пару раз пришлось чистить тяжелые файлы колег, которые весили как слон. Притом как я заметил именно наслоение условного форматирования и кучи "объектов" очень сильно тормозят эксель.
Потом, я бы вам посоветовал удалить все макросы (в копии) и посмотреть разницу - сколько места занимают они?
Для примера - моя база без макросов в этом формате где-то на 10 тыс строк и 25 столбцов занимает 2,5 мб.- сколько же информации в вашем файле?
 
Вот несколько статей о том, что может так "раздувать" ваш файл.
Может дело в одном из эти моментов, а не в количестве информации?
http://www.planetaexcel.ru/techniques/12/114/
http://www.excel-vba.ru/chto-umeet-excel/kak-umenshit-razmer-fajla/
 
Цитата
Dyarushin пишет: Вы уверены что ваша база в формате XLSB весит 45 МБ
два листа на 90 тысяч строк на 35 колонок. плюс еще 17 листов с оперативным объемом до 7 тысяч (половина листов на 7 тыс строк, половина на пару тысяч. на основном расчетном листе 500 колонок). а из элементов - всего штук 20 кнопок и штук 10 условий форматирования. макросов немного - всего 1700 строк, поэтому да, "чистых" данных там хватает. скрытых объектов и фигур нет, потому что файл написан мной с нуля и третьи лица не допускаются, а когда нужно, то ячейки копируются исключительно на ПКМ -> вставить значения. единственное, что файл писался на формулах, поэтому все расчеты в формулах. переводить в макросы конечно нужно, но система расчетов часто меняется, а на макросах менять сложнее для тех, кто не привык.
Изменено: KUDRIN - 07.11.2014 14:12:10
 
Цитата
KUDRIN пишет: все расчеты в формулах
отключите по умолчанию для этого файла автоматический пересчет. вносите изменения, сохраняйтесь, потом ручной пересчет, потом еще раз сохраняйтесь
F1 творит чудеса
 
Цитата
"чистых" данных там хватает
Приношу извинения за глупый совет да еще не в тему. :)
 
это нормально. файлы, забитые операторшами - не редкость, поэтому вопрос тоже по теме

одно дело - долгое открытие файла или долгий просчет
а другое дело - вываливание в ошибку приложения
и где эта грань...
Изменено: KUDRIN - 21.12.2014 19:49:10
 
Цитата
и где эта грань...
Для начала надо узнать где ошибка: сохраняется ли файл с ошибкой, или открывается с ошибкой. Судя по тому, что файл открылся после перезагрузки компьютера, который до этого не открывался,  я склоняюсь ко второму варианту.
Первый вопрос:
Цитата
при открытии сохраненного файла Excel белеет и вываливается в ошибку приложения
Это только на вашем компьютере? Пробовали ли вы его открывать на другом компьютере?
Желательно попробовать сохранить и открыть вот этот файл также на чужом железе.
Цитата
один раз вообще пришлось откатываться на неделю назад, потому что текущая ветка изменений и сохранений базы дошла до того, что при любом изменении ячейки и пересохранении - файл 100% вываливался с ошибкой приложения.
Второй вопрос: могут ли быть проблемы из за надстроек экселя?  
 
Цитата
vikttur пишет: ...на самом деле Excel не любит большие объемы информации.
это конечно слабость. даже "банально" загрузить 40 тысяч картинок (в абсолютно новый пустой файл), не важно размером 20х20 или 300х300 пикселей - в любом случае начинает тормозить при изменении любой ячейки. а для базы это можно сказать копейки. всего лишь 200 строк по 200 картинок.
это хорошо заметно - если картинки загрузить как shapes поверх листа - то ввести например единичку с клавиатуры в любую ячейку - уже занимает пару секунд. а если эти же картинки загрузить в скрытые комментарии, то ввести единичку в ячейку в принципе быстрее в несколько раз, хоть и работа с листом все равно тормозится

или сейчас загружаю совершенно в новый файл 30 тысяч txt файлов по 15 Кб. по одному файлу в ячейку для обработки. первые 100 файлов загружает за 0,22 секунды. то есть весь объем он должен загрузить за 66 секунд. а по факту за полтора часа дошел до 18 тысяч. Такое чувство, что каждый раз при добавлении новой информации Excel перепаковывает весь файл. и на сотнях, тысячах это не так заметно, а когда начинаются десятки тысяч - то работать довольно сложно. прямая экспоненциальная зависимость по времени от количества уже находящейся информации в файле
Изменено: KUDRIN - 20.12.2014 15:47:08
 
Цитата
даже "банально" загрузить 40 тысяч картинок
Словосочетание "табличный процессор" о чем нибудь говорит? Взлетать за пределы атмосферы на безмоторном планере?
 
спасибо, погуглил
Цитата
Табличный процессор — категория программного обеспечения, предназначенного для работы с электронными таблицами. Изначально табличные редакторы позволяли обрабатывать исключительно двухмерные таблицы, прежде всего с числовыми данными, но затем появились продукты, обладавшие помимо этого возможностью включать текстовые, графические и другие мультимедийные элементы. Инструментарий электронных таблиц включает мощные математические функции, позволяющие вести сложные статистические, финансовые и прочие расчеты.
 
Ну да, "включать", но основное: " мощные математические функции, позволяющие вести сложные статистические, финансовые и прочие расчеты"
 
ну вот опять. файлу всего пара дней. писал макрос и последние три часа перезаписывал в текущую версию файла
и теперь файл не открывается, а вываливается с ошибкой как в первом сообщении (прошлая версия сохраненная 3 часа назад в отдельном файле открывается нормально)
при попытке достать из него vbaProject.bin и закинуть в чистый xlsb файл - Excel этот vba код удаляет из чистого файла и открывает файл без кода
либо тупо виснет с ошибкой приложения, не открыв файл. получается он виснет из-за vba кода. даже в тех случаях, когда файл открывается не из доверенных рабочих папок с отключенными макросами
Изменено: KUDRIN - 21.12.2014 19:59:06
 
офис 32 битный?
OfficeProPlus 365x64
Win64forWorkstation
 
64
и Declare там нет, как нет и других конфликтных 32/64 функций, наверное
Изменено: KUDRIN - 21.12.2014 20:00:05
 
не в размерах дело, видимо
нужно новый файл создавать и переносить данные в него
думаю, ошибку искать замучаетесь
тем более, с постоянными вылетами
OfficeProPlus 365x64
Win64forWorkstation
 
так новому файлу итак 2 дня отроду, кода всего лишь 800 строк. и он построен на очень простой логике из публичных функций
если таких вылетов ни у кого нету, то наверное память прогоню через memtest, еще иногда 2013й офис умеет воскрешать с частичной потерей форматирования такие битые файлы

вот и сейчас открыл этот битый файл в 2013й версии и благополучно забрал свой код  
Изменено: KUDRIN - 21.12.2014 20:43:45
 
у меня файлы по 500 мб (от 300 до 900 тыс строк)
правда, только таблицы со статическими данными + вычисляемые столбцы с формулами
макросов нет, форматирования нет
таблицы только трансформированы в т.н. "умные"
все прочие расчеты - в отдельных файлах  
OfficeProPlus 365x64
Win64forWorkstation
 
ну то, что нет макросов и форматирования - это хорошо. я в файл базы, та, что в первом сообщении уже ничего не могу добавить.
если расширяю функционал - пару любых столбиков с формулами - 99%, что при сохранении в новый файл и попытке открыть - он не откроется
точно также и с кодом. добавляю пару строк кода - тоже 99% вылетает.
поэтому добавляю туда только по 300 строчек в месяц, не изменяя функционала, пока держится старик
 
Цитата
KUDRIN пишет: было ли у вас такое и как это все хотя бы диагностировать?
Было и есть.
Есть у меня одна надстройка ,больше 20 тыс строк кода.
Сам проект VBA около 4 метров.
Иногда аналогичный вылет, как правило ,после добавления нового класса
Заметил особенность,если вылетает в 2010 офисе,открывается без проблем в 2007.и наоборот.
Открыл ,сохранил проект,закрыл.
Открываю другим офисом.В причины не вникал,да и некогда.
Изменено: Doober - 21.12.2014 23:23:30
 
Примерно такая ситуация (вылетает при открытии 45Мб файл в Ехсеl2013), решилась следующим образом - открыл данный файл в 2007 версии, он там написал, что не может прочитать какие-то данные, и что-то там из него при восстановлении удалил, после этого восстановленный файл сохранил, и он теперь в 2013 версии нормально открывается... пока по крайней мере...
Изменено: denis76 - 13.10.2015 16:55:42
 
Скорее всего это сам excel "глючит", "неверно" работает с памятью. У меня на таких объемах 32-bit версия всегда выдавала нехватку ресурсов. После перехода на 64-bit либо вылетала, либо "портила" файл. Лечил так: если файл испорчен 2010, то открываю-восстанавливаю 2013, или наоборот (но это гораздо реже). Когда это перестало помогать перешел на сервер MariaDB. После этого в файлах, как правило, присутствует одна таблица с отчетом, файл на практике больше 4,5 Мб не получается. Все хранение и вся обработка - на сервере.
Неизлечимых болезней нет, есть неизлечимые люди.
 
Цитата
Doober написал:
Заметил особенность,если вылетает в 2010 офисе,открывается без проблем в 2007.и наоборот. Открыл ,сохранил проект,закрыл.
спасибо, очень ценный коментарий. примерно пол года назад пересохранил файл через другую версию офиса - с тех пор проблем пока нет.
хотя раньше добавление нескольких колонок с данными, либо даже добавление одной строки в VBA код - после изменений на 90% сохранялся "битый" файл
Изменено: KUDRIN - 07.12.2015 14:19:09
Страницы: 1
Читают тему
Наверх