首页 > 解决方案 > 如何在vba中停止滚动条自动跳转

问题描述

我有一个用户窗体,其框架 (Frame1) 包含一个高度设置为 1000 的垂直滚动条,该框架包含 160 个文本框,排列为 40 行和 4 列。第一列的 40 个文本框每个都有一个列表框。问题是当我双击列表框以选择文本框的项目时,滚动条会自动向下跳或向上跳。这对用户来说可能非常令人沮丧。在双击框架中的列表框时,我需要一些关于如何保持滚动条静止的帮助。Sub listbox1_Dbclick() textbox1.Value = Me.listbox.text End Sub

标签: excelvba

解决方案


经过一番研究,找到了修复Excel错误的方法

    Private Sub MainFrame_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
'    Stop
'    Debug.Print ActionX
'    Debug.Print ActionY
'    Debug.Print RequestDx
'    Debug.Print RequestDy
'    Debug.Print ActualDx
'    Debug.Print ActualDy
    If RequestDy = 299.45 Then
'        Stop
        ActualDy = 0
    End If

End Sub

当 VBA 进行滚动条跳转时,RequestDy 属性具有特定值(在我的情况下为 299.45,由注释的 Debug.Print 命令评估)
在这种情况下,我已使用 ActualDy = 0 命令取消跳转


推荐阅读