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
我在用户窗体中有一个滚动条,我想 运行 一些代码,如果它向左移动,运行 一些不同的代码,如果它向右移动。
类似这样的事情(显然这不起作用):
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