Страницы: 1
RSS
При нажатии ctrl+end происходит выделение последней ячейки листа
 
т.е. на листе ничего нет, а весит он более 2,5мб... Можете подсказать в чём может быть причина?
пример могу выслать только адресно, ибо размер не позволяет тут выложить, никогда с таким не сталкивался
 
Привет!
Встать в ячейку А1, сохранить файл. Насладиться ctrl+end
Сравнение прайсов, таблиц - без настроек
 
всё сделал как вы сказали- выделяет 104548 строку...
 
попробуйте так, скачайте этот файл откройте его, откройте свой файл большой перейдите на вкладку Вид затем Макросы и запустите макрос затем сохраните свой файл и посмотрите размер
Лень двигатель прогресса, доказано!!!
 
Сергей, а что конкретно делает Ваш макрос? что не так в моем файле?? мне по-большому счёту причину понять хочется??
после вашего макроса весить раз в сто меньше
Изменено: ttolu - 05.03.2019 13:58:22
 
Цитата
ttolu написал:
... при нажатии ctrl+end происходит выделение последней ячейки листа, хотя саму таблицу я удалил ... на листе ничего нет, а весит он более 2,5мб...
Попробуйте:
Код
Sub abcd_wxyz()
    Dim shp As Object
    With ThisWorkbook
        With .ActiveSheet
            For Each shp In .Shapes
                shp.Delete
            Next
            With .UsedRange
                On Error Resume Next
                .Columns.Delete: .Rows.Delete
                On Error GoTo 0
            End With
        End With
        .Save
    End With
End Sub
 
ttolu, почитайте ТУТ фактически файл уничтожает призраков форматирования которые живут в файле но их не увидеть без охотников на привидений
Лень двигатель прогресса, доказано!!!
 
Цитата
ocet p написал:
Попробуйте:
попробовал: все данные с листа были удалены+ при нажатии ctrl+end курсор становится на 104548 строку
Изменено: ttolu - 05.03.2019 14:41:16
 
Этот ваш файл был создан в Excel, или может, в каком-то LibreOffice, OpenOffice, Google Sheets и т.д. ?
 
Вручную то, что делает макрос:
Выделить строки без нужных данных (строки! не ячейки), удалить/
Ctrl+G, выделить объекты, удалить.
Обязательно сохранить изменения.
 
vikttur, ну, вы же понимаете, что удолять > 100тыс  строк уже не_нормально.. тут глобальная какаято проблема, вот, на словах чтобы было понятно: ексель определяет последнюю ячеку с данными в  104548 строке, потому что...а вот я не ведаю..
 
Глобальная проблема - это форматированные пустые строки, наличие объектов (могут быть нулевого размера). стили...
Я Вам показал, как вручню удалить миллион строк одним махом. Но бывает, что Excel не дает удалить большое количество. У Вас этот случай?
 
наверно позволяет, просто я до 50тыс строки дошол пока с выделением

Цитата
ocet p написал: Этот ваш файл был создан в Excel, или может
в 1с , но было норм до последнего момента..
 
Вы по одной удаляете? :)
Выделить первую пустую строку, Ctrl+Shift+стрелка вниз - будут выделены все строки ниже первой выделенной. Delete. Сохранить.
 
vikttur, уточняю: способ как обойти ету проблему не интересует(можно на новый лист скопировать нужные данные  и на етом все закончится)
-интересует именно сам случай, почему так происходит в етом файле: если лист вообще пустой а весит 2,4 мб....
 
Вы читаете, что Вам пишут?
Цитата
форматированные пустые строки, наличие объектов (могут быть нулевого размера). стили...
Откуда это все берется? При частом копировании-удалении-вставке (уточню - при неумелых действиях), при копировании данных из сторонних программ. От кривых рук пользователей... Например, нарожали 100  картинок. потом удалили столбец - столбец-то удалился, а картинки "схлопнулись" в нулевую ширину. Их не видно, но они есть. Еще пример: Была куча мала строк с данными. Данные удалили, строки форматированные остались. Еще: копировали столбец из другой книги, вставили не как данные, а все гамузом, в.т.ч. и форматирование на весь столбец. Играются стилями, потом приходится чистить внутренности книги...
 
Цитата
vikttur написал:
Выделить первую пустую строку, Ctrl+Shift+стрелка вниз - будут выделены все строки ниже первой выделенной. Delete.
сделал все, как вы сказали- последняя строка осталась прежней 1048576 при нажатии ctrl+end
 
Значит, не форматы виноваты. И если Вы и объекты удаляли, то, похоже, стили остались.
Проверьте еще на всякий случай:
Ctrl+F3 - именованные диапазоны
Главная-Условное форматирование - форматы
дополнительно: Данные-Подключения
 
vikttur, я могу вам выслать файл, посмотрите??
 
Цитата
vikttur написал: Играются..., потом приходится чистить внутренности книги...
Если открыть книгу с помощью архиватора. то много чег интересного можно увидеть.
Файл со стилями удалил, но лист... Под спойлером - фрагменты схемы листа. Видно? строки 99999, 1048576
Скрытый текст

Скрытый текст
Создайте новую книгу, перенесите данные (только данные! Копировать - вставить как значения). Форматированием и стилями играйтесь с большой осторожностью.
 
vikttur, сильно)) спосибо огромное! ))
 
Цитата
vikttur написал:
Форматированием и стилями играйтесь с большой осторожностью.
кстати, всё случилось одномоментно: заносились данные, потом сохранение и...
-поэтому почему файл превратился в такого монстра - неизвестно
 
Цитата
ttolu написал: заносились данные, потом сохранение и... почему файл превратился в такого монстра - неизвестно
Именно поэтому :)
Копировались не только данные, но и все, что относится к копируемому диапазону.
 
Автору вряд ли актуально, но хотелось бы добавить, кто наткнется на вопрос.
Соглашусь с
Цитата
написал:
Глобальная проблема - это форматированные пустые строки, наличие объектов (могут быть нулевого размера). стили...
Проводила эксперимент: Проверила изначально куда встает после ctrl+end  - в конец таблицы, т.е. все норм.
Далее ниже, правее в любой ячейке написала пробел, зафиксировала. Теперь при сочетании ctrl+end встает на нее - логично.
Удаляя полностью строки и саму ячейку - все равно ctrl+end и в этой ячейке - хотя в ней уже нет ничего. (версия Эксель 2016)

Можно, конечно, создать новый файл или лист, перенести аккуратно данные, но это лишние телодвижения.

Решение простое: Нужно вызвать инструмент Clean Excess Cell Formatting (с 2013-2016 версий). Которая чистит все лишнее форматирование и уменьшает размер файла в разы за счет этого.

Этот инструмент находится в надстройке Inquire, надстройку в подключить на вкладке Разработчик - Надстройки COM (ну а разработчик  в Параметрах - "Настроить Ленту" и поставить галочку в правой стороне окна)
 
Цитата
Татьяна К:   ... эксперимент: Проверила изначально ...  - в конец таблицы, т.е. все норм.Далее ниже, правее в любой ячейке написала пробел, зафиксировала. Теперь ... встает на нее - логично.Удаляя полностью строки и саму ячейку - все равно ctrl+end и в этой ячейке - хотя в ней уже нет ничего.
В вашем случае решение ещё проще: просто нажать на "Сохранить" и Ctrl+End снова будет выделять правильную ячейку
Изменено: Бахтиёр - 06.05.2022 17:00:54
Страницы: 1
Наверх