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