【问题标题】:Is there MouseUp event for a worksheet?工作表是否有 MouseUp 事件?
【发布时间】:2011-05-15 09:43:19
【问题描述】:

我有一个带有 Treeview 控件的用户窗体,我正在从该控件中拖动节点并将它们放到工作表上。这部分工作正常,但我需要知道用户删除节点的单元格地址(或至少行号)。我希望找到类似 MouseUp 事件和 hittest 函数的东西,但显然 Excel 不提供此功能。

当然,可以检查在 _OLECompleteDrag 之后不久发生的 Worksheet_SelectionChange,但它并不能作为“可靠的方式”吸引我。

有什么想法吗?

【问题讨论】:

    标签: excel excel-2003 vba


    【解决方案1】:

    您必须将代码放在工作表模块中(在查看 VBA 的项目资源管理器时位于 Microsoft Excel Objects 目录中),而不是在 Modules 目录中其自己的单独模块中。本质上,您需要一个事件处理程序来触发您想要的流程。

    这将执行触发并在触发时显示单元格的地址。

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
        MsgBox (Target.Address)
    
    End Sub
    

    您应该能够对其进行扩展以使其满足您的需求。让我知道这对您有什么作用。

    【讨论】:

    • 我说的是同一件事,工作表更改事件与计时器相结合(事件应该在 OLECompleteDrag 之后不久发生。我已经实现了它并且它有效,但我正在寻找更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多