Вы должны Scrollbar.Max
равняться максимальному количеству ходов.Я бы также предложил использовать Application.Goto Range(), True
, прежде чем перемещать полосу прокрутки.
Вот простой способ убедиться, что все синхронизировано:
Установите Worksheet.ScrollArea
, что ограничит возможности пользователей прокручивать
Удобный для пользователя код
Private Sub ScrollBar3_Change()
Dim col As String
col = Choose(Me.ScrollBar3.Value, "C", "N", "AB")
Application.Goto Cells(21, col), True
Me.ScrollBar3.Left = Columns(col).Left
End Sub
Тоталитарный код
Private Sub ScrollBar3_Change()
Dim col As String
col = Choose(Me.ScrollBar3.Value, "C", "N", "AB")
Me.ScrollArea = ""
Application.Goto Cells(21, col), True
Me.ScrollArea = Cells(21, col).Address
Me.ScrollBar3.Left = Columns(col).Left
End Sub