在MS Excel中收听鼠标(拖放)事件

有没有办法来识别MS Excel工作表上的拖放事件? 我正在寻找的是,当你拖放一个文件(比如从桌面)到MS Excel工作表的一个单元格(并将文件的名字插入单元格)时,能够听到事件。

用Excelmacros可以实现这一切吗?

我自己也不确定如何执行这个任务 – 但是,似乎有人已经试图解决这个问题。 我从vbadud.blogspot中取出这段代码:

 ' Place file on textbox to display filename. Private Sub TextBox1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) ' Declare variable(s). Dim eventvar1 As Integer '* Files Counter ' If an error occurs, go to the Error Handler. On Error GoTo Error_Handle1 'Drag N' Drop Event Handler If Data.GetFormat(vbCFFiles) = True Then eventvar1 = Data.Files.Count If eventvar1 = 1 Then If InStr(1, LCase$(Data.Files(eventvar1)), ".xls") Then txtExcel.Text = Data.Files(eventvar1) End If End If End If ' Error Handler Error_Handle1: If Err <> 0 Then Debug.Assert Err = 0 Err.Clear End If End Sub 

如果将代码放入文本框,代码将会发布文件的名称。 你可以使用方法,函数,甚至是一个独立的子程序来使用已经放入文本框的文本。

例如,检查关于将文本从文本框复制到单元格的SO文章 ,可以使用以下代码将文本input到Excel表格中的一个范围内:

 Range("A2").End(xlDown).Offset(1, 0).Value = TextBox1.Text 

从那里,它可以将子程序绑定到另一个自动化或其他forms的macros,按照你认为适合的方式进行拖放,或者对你有意义的任何事情。

让我知道如果有帮助,

〜JOL