【问题标题】:How to stop scroll bar auto jump in vba如何在vba中停止滚动条自动跳转
【发布时间】:2019-07-24 04:39:03
【问题描述】:

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

【问题讨论】:

  • 使用Listbox.ListIndex = Listbox.TopIndex会发生什么?
  • 谢谢 PEH,我没有使用 listIndex 属性。我将其设置为多少?
  • 取决于你想要的行为。使其等于TopIndex 将使其保持在顶部。使其等于ListCount - 1 将使其保持在底部。

标签: excel vba


【解决方案1】:

您可以更改滚动条的属性并进行检查。

这可能是设置属性的问题。 Bcz 我从来没有遇到过这种错误。

请先分享您的代码,然后论坛可以更好地帮助您。

【讨论】:

    【解决方案2】:

    经过一番研究,找到了修复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 命令取消跳转

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 2014-12-09
      • 2014-03-23
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多