首页 > 解决方案 > 如果在事件期间将鼠标光标移到列表框之外,则 Excel 在 ListBox_DblClick 之后冻结

问题描述

语境

我正在使用Listbox_DblClickExcel 用户表单(在 .xlam 插件中)上的事件来做很多事情(主要更新用户表单,但也做了一些外部日志记录......)。这些操作最多可能需要几秒钟。

问题

如果用户在 ListBox_DblClick 事件期间将鼠标光标移到列表框之外,则 Excel winbdows 几乎会被冻结。

结果

我无法单击 UserForm 或 ActiveSheet 或 VBA 窗口上的任何位置。甚至 Excel 的关闭按钮也没有反应。但似乎什么都没有运行(事件的最后一行已经运行,CPU 上没有任何可见的东西......)

为了能够再次与 Excel 交互,我需要:

然后 Excel 在全球范围内都很好。没有任何其他后果,并且在此冻结后一切运行正常。

我已经检查过的

最小可复制示例

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        For n = 1 To 3000
            Me.Caption = n
        Next n
        Me.ListBox1.List = Array("Apple")
    End Sub

    Private Sub UserForm_Initialize()
        Me.ListBox1.List = Array("Apple", "Banana")
    End Sub

笔记

此帖子表单 2012中(在 Dblclick 事件中编辑列表框项目会冻结 Excel,除非鼠标移到列表框上),用户似乎遇到了类似的问题。

标签: excelvbawindowuserform

解决方案


推荐阅读