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

Вход

Регистрация

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

 

= Мир MS Excel/Ограничение прокрутки листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Ограничение прокрутки листа
gnyaaaaa Дата: Пятница, 15.10.2021, 05:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте. Имеется такая задача. Книга, в ней несколько листов. На каждом листе есть разное кол-во умных таблиц с разным кол-вом данных. Данные постоянно меняются - то добавляются, то удаляются, и последняя заполненная строка постоянно плавает.
Я скрыл все строки ниже последней незаполненной макросом:
[vba]
Код

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row 'последняя непустая строка
Rows(lLastRow + 1 & ":1048576").EntireRow.Hidden = True ' скрыть всё ниже последней непустой строки
[/vba]
Но столкнулся с таким неприятным моментом - эксель позволяет прокручивать рабочий лист дальше, пока последняя нескрытая строка не окажется в самом верху рабочей области. Можно ли запретить ему такую прокрутку? Т.е. если на листе всего несколько строк (например, 10), и уже видна серая область, то не прокручивать вовсе, а если строк больше, и они все не помещаются в видимую область, то разрешить прокрутку до момента, пока снизу не появится последняя строка.

Пытался это организовать через динамическую ScrollArea:
[vba]
Код

ActiveSheet.ScrollArea = Range(Cells(1, 1), Cells(lLastRow, 16384)).Address
[/vba]
но столкнулся с тем, что не всегда последняя строка попадает в рабочую область, если прокручивать лист колесом мыши. Ползунок прокрутки не доходит до крайнего нижнего положения. Либо наоборот, прокрутка работает так же, как описано выше, будто и нет никакой ScrollArea. Ума не приложу, куда копать.


Сообщение отредактировал gnyaaaaa - Пятница, 15.10.2021, 05:03
 
Ответить
СообщениеЗдравствуйте. Имеется такая задача. Книга, в ней несколько листов. На каждом листе есть разное кол-во умных таблиц с разным кол-вом данных. Данные постоянно меняются - то добавляются, то удаляются, и последняя заполненная строка постоянно плавает.
Я скрыл все строки ниже последней незаполненной макросом:
[vba]
Код

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row 'последняя непустая строка
Rows(lLastRow + 1 & ":1048576").EntireRow.Hidden = True ' скрыть всё ниже последней непустой строки
[/vba]
Но столкнулся с таким неприятным моментом - эксель позволяет прокручивать рабочий лист дальше, пока последняя нескрытая строка не окажется в самом верху рабочей области. Можно ли запретить ему такую прокрутку? Т.е. если на листе всего несколько строк (например, 10), и уже видна серая область, то не прокручивать вовсе, а если строк больше, и они все не помещаются в видимую область, то разрешить прокрутку до момента, пока снизу не появится последняя строка.

Пытался это организовать через динамическую ScrollArea:
[vba]
Код

ActiveSheet.ScrollArea = Range(Cells(1, 1), Cells(lLastRow, 16384)).Address
[/vba]
но столкнулся с тем, что не всегда последняя строка попадает в рабочую область, если прокручивать лист колесом мыши. Ползунок прокрутки не доходит до крайнего нижнего положения. Либо наоборот, прокрутка работает так же, как описано выше, будто и нет никакой ScrollArea. Ума не приложу, куда копать.

Автор - gnyaaaaa
Дата добавления - 15.10.2021 в 05:01
_Igor_61 Дата: Пятница, 15.10.2021, 15:17 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Не уверен, но попробуйте посмотреть в сторону
[vba]
Код
If SmallScroll...>lLastRow Then...
[/vba]
 
Ответить
СообщениеНе уверен, но попробуйте посмотреть в сторону
[vba]
Код
If SmallScroll...>lLastRow Then...
[/vba]

Автор - _Igor_61
Дата добавления - 15.10.2021 в 15:17
  • Страница 1 из 1
  • 1
Поиск:

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