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

时间:2015-04-21 10:18:16

标签: vba scrollbar

我在userform中有一个滚动条,如果向左移动我想运行一些代码,如果向右移动则运行一些不同的代码。

这样的东西(显然这不起作用):

Private Sub ScrollBar1_Change()

If ScrollBar1 = Left Then

MsgBox "left"

ElseIf ScrollBar1 = Right Then

MsgBox "right"

End If

End Sub

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您需要存储全局变量。在激活Userform时设置它。并且做了代码

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