Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Файл распух до нелогичных размеров. - Страница 4 - Мир MS Excel

Старая форма входа
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: _Boroda_, китин  
Файл распух до нелогичных размеров.
SLAVICK Дата: Пятница, 25.12.2015, 14:47 | Сообщение № 61
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Я же писал макрос для себя :D - Он называется "Удалить_все_картинки" - а не "выделить_картинки_в_диапазоне"
я то знаю что это макрос делает yes .
К тому же если на листе свыше 2000 картинок - есть вероятность что excel просто зависнет при попытке их выделить.
Мне выделение нужно крайне редко - а вот удаление чаще.
Вывод: Для разных нужд - разные макросы beer


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 25.12.2015, 14:48
 
Ответить
СообщениеЯ же писал макрос для себя :D - Он называется "Удалить_все_картинки" - а не "выделить_картинки_в_диапазоне"
я то знаю что это макрос делает yes .
К тому же если на листе свыше 2000 картинок - есть вероятность что excel просто зависнет при попытке их выделить.
Мне выделение нужно крайне редко - а вот удаление чаще.
Вывод: Для разных нужд - разные макросы beer

Автор - SLAVICK
Дата добавления - 25.12.2015 в 14:47
китин Дата: Пятница, 25.12.2015, 15:20 | Сообщение № 62
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Ярослав вы правы.скопировал вставил уменьшился на 400 Кб видимо только за счет раскраски.Но 1 лист весит 1,5 метра.только значения?????????????????


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеЯрослав вы правы.скопировал вставил уменьшился на 400 Кб видимо только за счет раскраски.Но 1 лист весит 1,5 метра.только значения?????????????????

Автор - китин
Дата добавления - 25.12.2015 в 15:20
китин Дата: Пятница, 25.12.2015, 15:30 | Сообщение № 63
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Теперь я точно знаю сколько весит НОЛЬ!!!! 610000 нулей весят 1500 Кб!!!!Походу я в большой массив данныфе ставил формулой,потом формулу убивал и оставались нули. 610000 штук. Нажал Ctrl+H думал почти три минуты.Заменил на ничего.файл весит 100 Кб. yes Всем спасибо за советы и помощь!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеТеперь я точно знаю сколько весит НОЛЬ!!!! 610000 нулей весят 1500 Кб!!!!Походу я в большой массив данныфе ставил формулой,потом формулу убивал и оставались нули. 610000 штук. Нажал Ctrl+H думал почти три минуты.Заменил на ничего.файл весит 100 Кб. yes Всем спасибо за советы и помощь!

Автор - китин
Дата добавления - 25.12.2015 в 15:30
SLAVICK Дата: Пятница, 25.12.2015, 15:39 | Сообщение № 64
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Почитайте тут или
Тут: https://msdn.microsoft.com/en-us/library/aa263420(v=vs.60).aspx
ссылка не вставляется почему-то
А здесь есть калькулятор


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 25.12.2015, 15:40
 
Ответить
СообщениеПочитайте тут или
Тут: https://msdn.microsoft.com/en-us/library/aa263420(v=vs.60).aspx
ссылка не вставляется почему-то
А здесь есть калькулятор

Автор - SLAVICK
Дата добавления - 25.12.2015 в 15:39
китин Дата: Пятница, 25.12.2015, 15:52 | Сообщение № 65
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ХМ.То есть если на массив в 610000 ячеек сначала вставляешь формулу затем спецвставкой ее убиваешь, то лучше через ЕСЛИОШИБКА(формула ;"") ???Фигушки ошибки то нет .все равно ноль выдаст.Через ЕСЛИ только


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеХМ.То есть если на массив в 610000 ячеек сначала вставляешь формулу затем спецвставкой ее убиваешь, то лучше через ЕСЛИОШИБКА(формула ;"") ???Фигушки ошибки то нет .все равно ноль выдаст.Через ЕСЛИ только

Автор - китин
Дата добавления - 25.12.2015 в 15:52
SLAVICK Дата: Пятница, 25.12.2015, 16:20 | Сообщение № 66
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
то лучше через ЕСЛИОШИБКА(формула ;"")

проблема в том что "" - это не пустая ячейка. -а примерно равно символу 0.
Лучше так:
ЕСЛИОШИБКА(формула ;0)
убить формулы
заменить 0(целая ячейка) на пусто.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
то лучше через ЕСЛИОШИБКА(формула ;"")

проблема в том что "" - это не пустая ячейка. -а примерно равно символу 0.
Лучше так:
ЕСЛИОШИБКА(формула ;0)
убить формулы
заменить 0(целая ячейка) на пусто.

Автор - SLAVICK
Дата добавления - 25.12.2015 в 16:20
_Boroda_ Дата: Пятница, 25.12.2015, 16:33 | Сообщение № 67
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Я делаю немного иначе.
ЕСЛИОШИБКА(формула ;"!!!")
Убиваю формулы
Контрл f, ищу !!!.
Когда нашел, жму Контрл Шифт Стрелка вниз - выделяется все вниз до конца
Удаляю СТРОКИ целиком


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЯ делаю немного иначе.
ЕСЛИОШИБКА(формула ;"!!!")
Убиваю формулы
Контрл f, ищу !!!.
Когда нашел, жму Контрл Шифт Стрелка вниз - выделяется все вниз до конца
Удаляю СТРОКИ целиком

Автор - _Boroda_
Дата добавления - 25.12.2015 в 16:33
SLAVICK Дата: Пятница, 25.12.2015, 18:58 | Сообщение № 68
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Да, но во первых ошибки ошибками - но формулы тоже 0 выдают - и их достаточно много - если их удалить файл будет гораздо меньше.
а во вторых ошибка может быть не только внизу листа - получится удаление нужных данных :)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеДа, но во первых ошибки ошибками - но формулы тоже 0 выдают - и их достаточно много - если их удалить файл будет гораздо меньше.
а во вторых ошибка может быть не только внизу листа - получится удаление нужных данных :)

Автор - SLAVICK
Дата добавления - 25.12.2015 в 18:58
_Boroda_ Дата: Пятница, 25.12.2015, 20:02 | Сообщение № 69
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
формулы тоже 0 выдают

Эти нули я никогда не стираю - ноль и пусто совершенно разные вещи.
ошибка может быть не только внизу листа

Нужно так писать формулу, чтобы только внизу. Не обязательно с ЕСЛИОШИБКА, чаще даже не с ней, а с чем-то типа ЕСЛИ(что-то="";"!!!";еще_что-то)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
формулы тоже 0 выдают

Эти нули я никогда не стираю - ноль и пусто совершенно разные вещи.
ошибка может быть не только внизу листа

Нужно так писать формулу, чтобы только внизу. Не обязательно с ЕСЛИОШИБКА, чаще даже не с ней, а с чем-то типа ЕСЛИ(что-то="";"!!!";еще_что-то)

Автор - _Boroda_
Дата добавления - 25.12.2015 в 20:02
SLAVICK Дата: Пятница, 25.12.2015, 20:46 | Сообщение № 70
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
ноль и пусто совершенно разные вещи.

Согласен, но по крайней мере в моей работе, часто это не важно. 1*пусто=0 1*0=0 . Или план(или факт) = 0 для меня тоже что пусто :D .
Кстати сводные - тоже выдают пусто - а их у меня больше 80% <_< .
Нужно так писать формулу, чтобы только внизу.

Не всегда это целесообразно.(опять же в моей работе) к примеру посчитать прирост к предыдущему месяцу при факте 0. Можно конечно написать если.... но зачем?
И вообще - я всегда стараюсь всегда делать так чтобы формул не было ниже основной таблицы- поэтому для меня такой вариант не подходит.
У каждого свои тараканы в голове booze


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 25.12.2015, 20:47
 
Ответить
Сообщение
ноль и пусто совершенно разные вещи.

Согласен, но по крайней мере в моей работе, часто это не важно. 1*пусто=0 1*0=0 . Или план(или факт) = 0 для меня тоже что пусто :D .
Кстати сводные - тоже выдают пусто - а их у меня больше 80% <_< .
Нужно так писать формулу, чтобы только внизу.

Не всегда это целесообразно.(опять же в моей работе) к примеру посчитать прирост к предыдущему месяцу при факте 0. Можно конечно написать если.... но зачем?
И вообще - я всегда стараюсь всегда делать так чтобы формул не было ниже основной таблицы- поэтому для меня такой вариант не подходит.
У каждого свои тараканы в голове booze

Автор - SLAVICK
Дата добавления - 25.12.2015 в 20:46
китин Дата: Суббота, 26.12.2015, 07:45 | Сообщение № 71
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Сделал так:Стащил :D макрос у уважаемого Wasilic отсюда,переделал диапазон с А:А на H6:PG900.запустил макрос на ОДНОМ листе из 15.на 1 метр файлик сразу упал!!! класс hands
[vba]
Код
Sub WWW()
Range("H6:PG900").Replace "0", "", xlPart
End Sub
[/vba]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСделал так:Стащил :D макрос у уважаемого Wasilic отсюда,переделал диапазон с А:А на H6:PG900.запустил макрос на ОДНОМ листе из 15.на 1 метр файлик сразу упал!!! класс hands
[vba]
Код
Sub WWW()
Range("H6:PG900").Replace "0", "", xlPart
End Sub
[/vba]

Автор - китин
Дата добавления - 26.12.2015 в 07:45
SLAVICK Дата: Суббота, 26.12.2015, 12:01 | Сообщение № 72
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Range("H6:PG900").Replace "0", "", xlPart

китин, НЕЛЬЗЯ запускать этот макрос на рабочих данных. dont
Получите на выходе вместо 15000 = 15 ; 2015 = 215 .... killed
Этот макрос удаляет ВСЕ нули в независимости от того где найдет.
Если нужно удалить нулевые значения -- вместо xlPart - нужно написать xlWhole.
Т.е. можно :D так:
[vba]
Код
Range("H6:PG900").Replace "0", "", xlWhole
[/vba]
Или так:
[vba]
Код
Range("H6:PG900").Replace 0, "", xlWhole
[/vba]


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Суббота, 26.12.2015, 12:04
 
Ответить
Сообщение
Range("H6:PG900").Replace "0", "", xlPart

китин, НЕЛЬЗЯ запускать этот макрос на рабочих данных. dont
Получите на выходе вместо 15000 = 15 ; 2015 = 215 .... killed
Этот макрос удаляет ВСЕ нули в независимости от того где найдет.
Если нужно удалить нулевые значения -- вместо xlPart - нужно написать xlWhole.
Т.е. можно :D так:
[vba]
Код
Range("H6:PG900").Replace "0", "", xlWhole
[/vba]
Или так:
[vba]
Код
Range("H6:PG900").Replace 0, "", xlWhole
[/vba]

Автор - SLAVICK
Дата добавления - 26.12.2015 в 12:01
китин Дата: Суббота, 26.12.2015, 13:05 | Сообщение № 73
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
SLAVICK, дык я же специально этот диапазон задал :p .Там только нули от убитых формул.А с твоей поправкой ведь можно универсальный такой чистильщик от нулей сделать.Для всех загаженных мною %) файлов!!!!!
а сейчас и опробую


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Суббота, 26.12.2015, 13:05
 
Ответить
СообщениеSLAVICK, дык я же специально этот диапазон задал :p .Там только нули от убитых формул.А с твоей поправкой ведь можно универсальный такой чистильщик от нулей сделать.Для всех загаженных мною %) файлов!!!!!
а сейчас и опробую

Автор - китин
Дата добавления - 26.12.2015 в 13:05
китин Дата: Суббота, 26.12.2015, 13:54 | Сообщение № 74
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ну прошу сильно не пинать за этого уродца. макрорекордер + некоторая корректировка с добавлением шедевров от Wasilic и SLAVICK.
за пинки в сторону оптимизации буду очень благодарен.

[p.s.]По моему разумению этого уродца надо в модуль книги пихать а не листа?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Суббота, 26.12.2015, 14:03
 
Ответить
Сообщениену прошу сильно не пинать за этого уродца. макрорекордер + некоторая корректировка с добавлением шедевров от Wasilic и SLAVICK.
за пинки в сторону оптимизации буду очень благодарен.

[p.s.]По моему разумению этого уродца надо в модуль книги пихать а не листа?

Автор - китин
Дата добавления - 26.12.2015 в 13:54
SLAVICK Дата: Суббота, 26.12.2015, 17:54 | Сообщение № 75
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Ну во первых зачем включать и отключать отображение нулей (ActiveWindow.DisplayZeros)? тем более по много раз.
Их удаление произойдет вне зависимости от видимости.

Во вторых - чтобы удалять нули с листа - необязательно его выделять.
можно универсальный такой чистильщик от нулей сделать

Вот сделал простенький макрос:
[vba]
Код
Sub Убираемнули()
Dim sh As Worksheet, r As Range
If ActiveWindow.SelectedSheets.Count > 1 Then
    For Each sh In ActiveWindow.SelectedSheets
        Set r = sh.UsedRange
        r.Replace 0, "", xlWhole
    Next
Else
    If MsgBox("Заменить 0 во всей книге?", vbYesNo) = vbNo Then
        If Selection.Count = 1 Then Set r = ActiveSheet.UsedRange Else Set r = Selection
        r.Replace 0, "", xlWhole
    Else
        For Each sh In ActiveWorkbook.Sheets
            Set r = sh.UsedRange
            r.Replace 0, "", xlWhole
        Next
    End If
End If
End Sub
[/vba]
Если выделено несколько листов- он удалит 0 на выделенных листах
Если выделен только один лист - задает вопрос про замену во всей книге и если да - удаляет 0 во всей книге, если нет:
Если на листе выделено несколько ячеек - удаляет 0 только в выделенном диапазоне иначе все 0 на активном листе.
По моему разумению этого уродца надо в модуль книги пихать а не листа?

Да лучше в модуль. А мой макрос - можете закинуть в personal - тогда можно будет пользоваться для любой книги. :D
К сообщению приложен файл: 8906608-1-.xlsm (20.6 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Суббота, 26.12.2015, 17:59
 
Ответить
СообщениеНу во первых зачем включать и отключать отображение нулей (ActiveWindow.DisplayZeros)? тем более по много раз.
Их удаление произойдет вне зависимости от видимости.

Во вторых - чтобы удалять нули с листа - необязательно его выделять.
можно универсальный такой чистильщик от нулей сделать

Вот сделал простенький макрос:
[vba]
Код
Sub Убираемнули()
Dim sh As Worksheet, r As Range
If ActiveWindow.SelectedSheets.Count > 1 Then
    For Each sh In ActiveWindow.SelectedSheets
        Set r = sh.UsedRange
        r.Replace 0, "", xlWhole
    Next
Else
    If MsgBox("Заменить 0 во всей книге?", vbYesNo) = vbNo Then
        If Selection.Count = 1 Then Set r = ActiveSheet.UsedRange Else Set r = Selection
        r.Replace 0, "", xlWhole
    Else
        For Each sh In ActiveWorkbook.Sheets
            Set r = sh.UsedRange
            r.Replace 0, "", xlWhole
        Next
    End If
End If
End Sub
[/vba]
Если выделено несколько листов- он удалит 0 на выделенных листах
Если выделен только один лист - задает вопрос про замену во всей книге и если да - удаляет 0 во всей книге, если нет:
Если на листе выделено несколько ячеек - удаляет 0 только в выделенном диапазоне иначе все 0 на активном листе.
По моему разумению этого уродца надо в модуль книги пихать а не листа?

Да лучше в модуль. А мой макрос - можете закинуть в personal - тогда можно будет пользоваться для любой книги. :D

Автор - SLAVICK
Дата добавления - 26.12.2015 в 17:54
китин Дата: Вторник, 29.12.2015, 07:25 | Сообщение № 76
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Спасибо Слава.Работает на ура!!!Если время будет можно прокомментировать? yes


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСпасибо Слава.Работает на ура!!!Если время будет можно прокомментировать? yes

Автор - китин
Дата добавления - 29.12.2015 в 07:25
SLAVICK Дата: Вторник, 29.12.2015, 11:03 | Сообщение № 77
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Спасибо Слава.Работает на ура
Не за что - рад что пригодилось :D

Если время будет можно прокомментировать
Ну вот:


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Вторник, 29.12.2015, 11:09
 
Ответить
Сообщение
Спасибо Слава.Работает на ура
Не за что - рад что пригодилось :D

Если время будет можно прокомментировать
Ну вот:

Автор - SLAVICK
Дата добавления - 29.12.2015 в 11:03
китин Дата: Вторник, 29.12.2015, 12:32 | Сообщение № 78
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Спасибо!!!!! hands


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСпасибо!!!!! hands

Автор - китин
Дата добавления - 29.12.2015 в 12:32
SLAVICK Дата: Вторник, 16.02.2016, 17:05 | Сообщение № 79
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Решил добавить сюда решение из этой темы - чтобы не затерялось, и было легче найти если что.
Может кому сгодится. :D
Макрос чем-то схож с кодом Alex_ST в 48-м посте, но немного не такой.
В частности можно выбрать минимальный показатель для высоты и ширины.
Будут удалятся картинки меньше заданного критерия.
Картинки не выделяются а сразу удаляются (потому, что при большом количестве картинок при попытке выделить все программа просто зависнет).
+ добавил возможность вывода данных о картинках на новый лист - чтоб увидеть где и что есть и что было удалено.
В общем вот :D :

Добавил название картинки и шапку.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеРешил добавить сюда решение из этой темы - чтобы не затерялось, и было легче найти если что.
Может кому сгодится. :D
Макрос чем-то схож с кодом Alex_ST в 48-м посте, но немного не такой.
В частности можно выбрать минимальный показатель для высоты и ширины.
Будут удалятся картинки меньше заданного критерия.
Картинки не выделяются а сразу удаляются (потому, что при большом количестве картинок при попытке выделить все программа просто зависнет).
+ добавил возможность вывода данных о картинках на новый лист - чтоб увидеть где и что есть и что было удалено.
В общем вот :D :

Добавил название картинки и шапку.

Автор - SLAVICK
Дата добавления - 16.02.2016 в 17:05
китин Дата: Среда, 27.07.2016, 16:20 | Сообщение № 80
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Всем доброго времени суток. Дело в следующем: Попросили посмотреть файл: не удалить строки, пишет не хватает ресурсов. Ну поудалял я раскраску, таблицы, данные, те которые до конца листа.сохранил.(да, файл прислали по почте файл весил 5 Мб )сохранил, посмотрел, офигел файл стал весить 170 Мб.Подвесил мне весь комп. Я в шоке: люди что там может быть?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеВсем доброго времени суток. Дело в следующем: Попросили посмотреть файл: не удалить строки, пишет не хватает ресурсов. Ну поудалял я раскраску, таблицы, данные, те которые до конца листа.сохранил.(да, файл прислали по почте файл весил 5 Мб )сохранил, посмотрел, офигел файл стал весить 170 Мб.Подвесил мне весь комп. Я в шоке: люди что там может быть?

Автор - китин
Дата добавления - 27.07.2016 в 16:20
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!