Страницы: 1 2 След.
RSS
Макрос для очистки от невидимого мусора в ячейках
 
Был файл Excel с 10 листами - размер 100 кб.
Отдал на заполнение, вернули размером в 20 мб, открывается по 30 минут. Добавилось данных не так уж и много.
Копирование листов в новый файл не дало результат.

Нужен макрос для прохода по всем ячейкам 1 листа и удаление с них "скрытого мусора".
Изменено: Marat Ta - 15.02.2021 10:23:57
 
Здравствуйте. На этом сайте есть две отличные статьи:
"Как уменьшить размер файла" и "Зачистка текста". Гляньте, может чего полезного по вашей теме найдете.
 
Это не то....
Это какой то мусор в ячейках после сбоя.
Несколько лет назад было уже такое и был макрос (утерян). Он проходил по всем ячейкам и очищал от мусора... долго правда.... но после этого размер  файла уменьшался с мб до кб и быстро открывался.
Сейчас даже при вводе числа в ячейку паузы... хотя на листе всего 30 строк и 8 столбцов.  
Изменено: Marat Ta - 15.02.2021 10:29:29
 
Marat Ta,  вы бы показали хоть часть этого мусора в книге.
Не бойтесь совершенства. Вам его не достичь.
 
Я пробовал копировать по отдельным листам, удалять все данные на листе.... размер 1 листа все равно не менее 2 мб и не сжимается ничем.
Выделял весь лист и удалял все. Размер файла не меняется.

Мусор в пустых ячейках.

Тот макрос остался на прежней работе. Я помню что там было что то  Сlear***** с каждой ячейкой по циклу по всему листу. Данные и форматы сохранялись.
Изменено: Marat Ta - 15.02.2021 10:40:10
 
Marat Ta, ссылкой на диск например
Цитата
Я помню что там было что то  Сlear*****
https://vremya-ne-zhdet.ru/vba-excel/metod-range-clear/
Изменено: Mershik - 15.02.2021 10:50:21
Не бойтесь совершенства. Вам его не достичь.
 
Большое спасибо. Буду проверять все варианты из статьи.
Изменено: Marat Ta - 15.02.2021 10:58:19
 
1. Возможно в файле имеются связи с другими книгами или файлами, что может влиять на быстродействие и размер
Посмотреть можно
Вкладка Данный >> Подключения > Изменить связи

2. Также могут быть в большом количестве именованные диапазоны, имена
Код
'' Поиск, удаление имен в файле
Sub delNames()
Dim nms
  With ThisWorkbook
    For Each nms In .Names
        Debug.Print nms; Space(3); nms.Name
        nms.Delete
    Next
  End With
End Sub

3. Также возможно поможет
Код
'' Очистка страниц книги
Sub ClearSheets()
Dim sht
  With ThisWorkbook
    For Each sht In .Sheets
     Debug.Print sht.Name
     sht.Cells.ClearComments
     sht.Cells.ClearFormats
     sht.Cells.ClearHyperlinks
     sht.Cells.ClearNotes
     sht.Cells.ClearOutline
    Next
  End With
End Sub
Изменено: TSN - 15.02.2021 11:15:53
 
Это не подошло.
К тому же убирает все форматы и оформления ячеек. А в том варианте макроса все оставалось без изменений.

Сохранил файл в формате xlsb
При открытии вышла ошибка обнаружено содержимое, которое не удалось прочитать - восстановить?
Цитата
Восстановленные записи: Рисунок из части /xl/drawings/drawing1.xml (Рисованная фигура)
После этого файл стал в 120kb вместо 20мб и работает быстро.
 
Цитата
Marat Ta написал:
К тому же убирает все форматы и оформления ячеек.
sht.Cells.ClearFormats - эта часть кода убирает все форматы и оформления ячеек.
 
Вы неправильно поняли - таблица красиво оформлена и нужно было оставить все как есть.

В общем, привезли с работы и тот самый макрос....
Код
Sub Clear()
 For i= ActiveSheet.Shapes.Count to 1 Step -1
        ActiveSheet.Shapes(i).Delete
 Next i
End Sub

Выполнение на i7, 128mb RAM шло около 15-20 минут ... все зависло в Windows7 .... но после завершения - файл 120 кб.
 
Цитата
Marat Ta написал:
128mb RAM
Интересно, на какой барахолке было куплено это ОЗУ?))
 
Цитата
Marat Ta написал:
В общем, привезли с работы и тот самый макрос....
И кто же на Вашей работе Shapes-ами увлекается? Ищите здесь:
Цитата
Marat Ta написал:
Отдал на заполнение, вернули размером в 20 мб
и насчет
Цитата
Marat Ta написал:
Копирование листов в новый файл не дало результат.
Нужно копировать не лист целиком, а только данные
 
Ram 128gb - опечатка.

Только данные не получалось - так как сложное оформление и заново все передвигать...  если копировать только выделив прямоугольный участок.  
 
Marat Ta, ага
Цитата
Marat Ta написал:
Ram 128gb - опечатка.
. 😂😂😂
Вы сами в это верите? С таким объемом памяти вы бы и не заметили Никаких Тормозов в работе с любыми программами, не говоря уже про эксэль...
 
На другие приложения не жалуюсь по производительности

А вот Excel именно с этим файлом подвисал конкретно.
 
Цитата
Marat Ta написал:
Excel именно с этим файлом подвисал конкретно
Ключевые слова - "именно с этим файлом". Marat Ta, Вам об этом и говорят с самого начала обсуждения, а Вы все про то, что Excel виноват... Вы ответы помогающих вообще читаете?
Цитата
_Igor_61 написал:
Ищите здесь:
Отдал на заполнение, вернули размером в 20 мб
:D  Просто не не так вернули файл, который Вы отдавали на заполнение (см. #13)
 
Marat Ta, Если накопировано объектов, то удалите  их сразу через F5/special/Objects .....
По вопросам из тем форума, личку не читаю.
 
Миш, может быть не все так просто.
Несколько лет назад попадался файл, в котором сидела картинка ~5mb, однако, ни на одном из листов ее не было. Пришлось удалять через RAR.
 
Разносили данные девушки, которые Excel на начальном уровне владеют.
Файл испортился или из-за сбоя или вируса.

Видимых обьектов нет. Выше писал - выделял всю таблицу и удалял все содержимое, размер файла оставался таким же большим.

Не знаю, что чистит макрос с 11 сообщения, долго - но результат есть.
Изменено: Marat Ta - 15.02.2021 21:32:49
 
И всё же, при 128gb ram это что-то заоблачное... Или же как тут на сайте у Николая Павлова в приёмах есть статья про файл Эксель где в нём хранятся другие файлы, типа как сейф. Могу ошибаться, надо проверить на этом сайте или на другом. Проверьте.
 
Marat Ta, пришлите на почту тот, который до удаления мкусора. Интересно посмотреть.
 
Хорошо. Завтра утром с работы отправлю.  
 
Цитата
Николай написал:
И всё же, при 128gb ram это что-то заоблачное...
что-то Лунтиком повеяло. Николай,  4 поста, как минимум 3 из них имеют нулевую пользу.

Цитата
RAN написал:
Миш, может быть не все так просто.
согласен, надо смотреть оригинал и можно допускать что сбой но больше похоже на то что при заполнении накопировали  и прежде всего ActiveSheet.Shapes.Count получить. То что удаление по одному дает результат уже говорит что размножен объект, возможно он имеет нулевой размер или скрыт. Ну а то что по одному удаление длится так долго, так тоже не удивительно.
По вопросам из тем форума, личку не читаю.
 
БМВ, а кто такой ваш
Цитата
БМВ написал:
Лунтиком повеяло
? Не знаком я с ним. И да,я не профи как вы. НО, повторяюсь снова вы мужики реально верите что при таком Объёме памяти у ТС
Цитата
Marat Ta написал:
вернули размером в 20 мб, открывается по 30 минут.
.
БМВ,  ищите дальше... А я пока по наблюдаю со стороны за вашим поиском.
Хотя не давно была такая же похожая тема Пустой лист размером 33 Мб.
Удачи в Поисках!!!  :idea:
Изменено: Николай - 16.02.2021 00:44:01
 
Цитата
Николай написал: реально верите что при таком Объёме памяти... размером в 20 мб, открывается по 30 минут...?
А Вы не верите в зацикливания?
 
vikttur, верю, встречал такие файлы. Но на моём старом мамонте с 12гб. оперативки на борту не открывались по 30 минут. Не скажу сколько файл весил, не помню, честно.
UPD. А я вот не верю про 128 гигов оперативки и про 30 минут.
Изменено: Николай - 16.02.2021 01:33:52
 
Цитата
Marat Ta написал:
Отдал на заполнение, вернули размером в 20 мб
Разносили данные девушки, которые Excel на начальном уровне владеют.
Похоже Ваши девушки владеют не начальным уровнем, это как надо умудрится заполняя таблицу данными, напихать в файл кучу графических объектов.
Ваши девушки диверсанты :)
 
https://wdfiles.ru/fa19f5

Весь файл загрузить не могу, интернет с телефона 3g - дорогой. Сам файл не сжимается, оставил только 1 лист - перевел в формат 2003 (только с ним хорошо сжимает 7zip).
В принципе, зависание хоть и не такое заметное видно и на этой версии файла.

Как будет возможность доступа к бесплатному интернету - скину полную версию.
 
?ActiveSheet.shapes.count
99167 линий высотой и шириной 0
кто-то очень постарался
так что ничего удивительного!  :D
Страницы: 1 2 След.
Наверх