|
|
|
Supreme Being
      
участник
Last Login: 16.11.2007 23:39
Сообщ.: 88,
Visits: 810
|
|
На листе есть таблица, которая в разное время может занимать разное количество строк. .....
Как сделать что-то вроде этого:
With ScrollBarRows
.Min = 1
.Max = 'последняя занятая строка'
End With
ЗЫ: это код для формы, нужен аналогичный для рабочего листа
PSS: номер последней строки всегда известен
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.12.2007 16:53
Сообщ.: 100,
Visits: 1 707
|
|
| Не очень понял, но может вам цитата из Help поможет Private Sub UserForm_Initialize()
ScrollBar1.Max = 400 ScrollBar1.Min = 10 ScrollBar1.Value = 100 Frame1.TextBox1.Text = "Enter your text here." Frame1.TextBox1.MultiLine = True Frame1.TextBox1.WordWrap = True Frame1.Zoom = ScrollBar1.Value End Sub Private Sub ScrollBar1_Change() Frame1.Zoom = ScrollBar1.Value Label2.Caption = ScrollBar1.Value End Sub
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.11.2007 23:39
Сообщ.: 88,
Visits: 810
|
|
Pavel55 (19.04.2007) Не очень понял, но может вам цитата из Help поможет<
Не поможет.
Для ScrollBara на пользовательской форме я и сам привёл пример.
А мне нужно для скролбара на листе, тот что справа от ячеек.
Чтобы если я перетянул ползунок вниз, то как раз попал-бы на последнюю строку текущй таблицы
PS: Sheets(1).ScrollArea='Таблица' - не предлагать
|
|
|
|
|
Junior Member
      
участник
Last Login: 14.11.2008 9:56
Сообщ.: 19,
Visits: 158
|
|
Excel (19.04.2007)
PS: Sheets(1).ScrollArea='Таблица' - не предлагатьПочему?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.11.2007 23:39
Сообщ.: 88,
Visits: 810
|
|
vkodor (20.04.2007)
Почему?
Потому, что если вчера последняя строка в таблице была 10 000, а сегодня 100, хоть и сделать scrollarea= "A1:A100" , у скроллбара всё равно остаётся
Min=1
Max=10 000
Попробуйте в этом случае, пертаскивая такой ползунок, поперемещаться по 100-строковой таблице и вопрос отпадёт.
PS: По-моему без API не обойтись. Только вот кто бы функцию подсказал
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.12.2007 16:53
Сообщ.: 100,
Visits: 1 707
|
|
| Если после того, как таблица сократилась с 10 000 до 100 удалять пустые строки (вручную или макросом), а потом сохранить файл, то ScrollBar сбрасывается и уже будет от 1 до 100
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.11.2007 23:39
Сообщ.: 88,
Visits: 810
|
|
Перерыв всё API склоняюсь к мнению, что задача не выполнима.
С помощью апи можно управлять скролбаром приложения, но не скролбаром листа :((
Private Declare Function FlatSB_SetScrollRange Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal fRedraw As Boolean) As Long
Sub GGGG()
FlatSB_SetScrollRange Application.hWnd, 1, 20, 80, False
End Sub
Хотя надежда найти способ обратиться именно к скролбару листа ещё жива :)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.03.2008 22:19
Сообщ.: 118,
Visits: 1 025
|
| | |