VBA - 如果滚动条向左或向右改变

VBA - If scrollbar is changed left or right

我在用户窗体中有一个滚动条,我想 运行 一些代码,如果它向左移动,运行 一些不同的代码,如果它向右移动。

类似这样的事情(显然这不起作用):

Private Sub ScrollBar1_Change()

If ScrollBar1 = Left Then

MsgBox "left"

ElseIf ScrollBar1 = Right Then

MsgBox "right"

End If

End Sub

谢谢

您需要使用模块级变量来跟踪最后位置并将其与当前位置进行比较:

Private mCurrentScrollPos As Long

Private Sub ScrollBar1_Change()
    If (ScrollBar1.Value > mCurrentScrollPos) Then
        MsgBox "Left"
    Else
        MsgBox "Right"
    End If

    mCurrentScrollPos = ScrollBar1.Value
End Sub

您需要存储一个全局变量。当用户窗体被激活时设置它。然后执行代码

Private Sub ScrollBar1_Change()
    If (ScrollBar1.Value > scrollLoc) Then
        MsgBox "Left"
    Else
        MsgBox "Right"
    End If

    scrollLoc= ScrollBar1.Value
end sub

Private Sub UserForm_Activate()

    scrollLoc = Me.ScrollBar1.Value 
End Sub

并且有一个全局变量

private scrollLoc as long