Events 在MS Excel中侦听鼠标(拖放)事件
是否有方法识别MS Excel工作表上的拖放事件?我想要的是,当您将文件(比如从桌面)拖放到MS Excel工作表的单元格中(并将文件名插入单元格中)时,能够侦听事件Events 在MS Excel中侦听鼠标(拖放)事件,events,vba,excel,drag-and-drop,Events,Vba,Excel,Drag And Drop,是否有方法识别MS Excel工作表上的拖放事件?我想要的是,当您将文件(比如从桌面)拖放到MS Excel工作表的单元格中(并将文件名插入单元格中)时,能够侦听事件 使用Excel宏可以实现这一点吗?我自己也不确定如何执行该任务-但是,似乎有人已经尝试解决该问题。我从以下位置提取了此代码: 从这里开始,就是将子例程绑定到另一个宏,以实现某种形式的自动化,或者按照您认为合适的方式拖放,或者执行任何对您有意义的操作 如果有帮助,请告诉我 ~JOL您可以在UserForm对象上使用“BeforeDr
使用Excel宏可以实现这一点吗?我自己也不确定如何执行该任务-但是,似乎有人已经尝试解决该问题。我从以下位置提取了此代码: 从这里开始,就是将子例程绑定到另一个宏,以实现某种形式的自动化,或者按照您认为合适的方式拖放,或者执行任何对您有意义的操作 如果有帮助,请告诉我
~JOL您可以在UserForm对象上使用“BeforeDragOver”事件来注册拖放操作,但它可以解释的唯一数据是存储在剪贴板上的文本。我不确定是否有解决此问题的方法…如您所述,触发DragDrop事件需要此事件在工作簿级别可用,但实际情况并非如此。DragDrop事件仅作为表单的一部分可用,而不是工作簿或工作表。实际上,我看到一些资源使我认为这是可能的,但我自己很难让它正常工作。你自己试过什么吗?这是一个例子。再说一次,我自己也不能让它工作,但这看起来很有希望。@Gaffi你在这方面成功了吗?显然,此拖放功能适用于添加到图纸中的对象(控件)。但它不适用于Excel
范围
、单元格
或工作表
对象本身?因此,OP答案的答案是-否,无法识别MS Excel工作表的拖放事件,Iguess@Prokurors不,我自己没有找到解决方案。嗨,这段代码是关于把一些东西拖到控件上,而不是工作表本身。可能会有帮助,但接缝可能与OP要求的有所不同。。。
' 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
Range("A2").End(xlDown).Offset(1, 0).Value = TextBox1.Text