Прокрутите до указанного индекса списка, который будет отображаться в верхней части видимого списка
Я не могу понять, как получить формуокно списка управления для прокрутки к выбранному значению и его отображения.
Кажется, что на самом деле нет стандартного метода (за исключением вызовов API) для управления видимостью внутреннего отображения списка для форма контрольный список в отличие от пользовательской формы ActiveX контрольный список.
Дополнительные подсказки
Ради полноты (и из-за комментариев) я демонстрирую, как прокрутить представление в списке Userform, комбинируя оба свойства навигации - т.е.установка .ListIndex
, а также .TopIndex
вместе с определенным индексом значение :-), например, с помощью следующей процедуры:
Примеры вызовов
ScrollTo 100 ' attention: zerobased
или
ScrollTo ActiveSheet.ListBoxes("List Box 13").Selected
Вспомогательная процедура
... устанавливает текущий ListIndex
, например, 100 , а определяет его как .TopIndex
.
( Примечание: конечно, цели в самом конце списка могут отображаться даже ниже .TopIndex
в зависимости от фактического .ListCount
)
Private Sub ScrollTo(ByVal idx&)
' Purpose: Scroll to given target index to be displayed on top of visible list
' Site: /8507855/prokrutka-elementa-upravleniya-listbox
' Author: https://stackoverflow.com/users/6460297/t-m
Me.ListBox1.TopIndex = idx
Me.ListBox1.ListIndex = idx
End Sub