首页 > 解决方案 > VBA - 组合框向下滚动条损坏

问题描述

我正在为我的工作场所开发一个客户端管理实用程序,具有各种笔记输入/查看器系统+下拉菜单,以方便和高效。

现在我遇到一个问题,在用户窗体上,单击组合框后,用户无法单击滚动条向下拖动。他们可以单击箭头向下滚动,但不能单击栏本身以加快滚动速度。

奇怪的是,我发送的文件“7.8”是我文件的直接副本,但插入了我的同事客户信息。在我 5 分钟前制作的版本上,点击向下滚动条效果很好。我截取了组合框属性的屏幕截图,但找不到任何更改的内容。

这也发生在我今天对它进行了零更改的用户表单上,同样不是在他的工作上,而是在我的工作上。打开多个工作簿时是否会出现常见问题?我所有的用户表单代码都针对此工作簿并通过代号识别工作表。所有其他功能都在工作,包括比滚动条是否可拖动更复杂的事情......

有点不解。有人有想法么?

所以我在下面放了一个代码示例:我成功地在几个点上使用相同的代码,并稍作调整,以识别是否选择了给定的帐户所有者,如果是,则加载匹配的客户端,如果选择了客户端,则加载笔记的时间戳。

奇怪的是,所识别的代码与可重现的代码完全相反。我有工作簿 7.8,复制粘贴它,更改了客户端数据(这绝不会影响底层代码),然后发送给我的同事,他当时对用户窗体的体验是滚动条可以让按钮向下单击但不能拖动栏本身。我唯一能想到的是,如果有多个工作簿导致了一个问题,但是在所有> 1000行代码中,我什至没有一行代码对滚动条有任何作用。不知何故,在给他发电子邮件的 5 分钟内,滚动条失去了部分功能?

 Sub noteOwnerClients()

    Dim wsFound As Worksheet
  Dim mainBook As Workbook
Set mainBook = ThisWorkbook
Dim rangeFinder As Range
Dim rangeInt As Integer
Dim rangePull As String
Dim selectedString As String

For Each ws In ThisWorkbook.Worksheets
    If StrComp(ws.CodeName, "sheetDatabase", vbTextCompare) = 0 Then
        Set wsFound = ws
    End If
Next ws

noteClientCombo.Clear

selectedString = noteOwnerCombo.Text

    If selectedString <> "" Then
        rangeInt = 2
            For Each rangeFinder In wsFound.Range("E2:E200")
                    If selectedString = rangeFinder.Value Then
                        rangePull = "A" & rangeInt
                        noteClientCombo.AddItem wsFound.Range(rangePull)
                    End If
                rangeInt = rangeInt + 1
            Next
    End If
End Sub

标签: excelvba

解决方案


推荐阅读