陷印在工作表文本框中单击鼠标右键

时间:2016-07-19 19:46:01

标签: excel vba excel-vba

当用户右键单击工作表文本框而非ActiveX时,我希望能够捕获右键单击事件。

我知道可以轻松完成用户形式文本框,这不是我之后的事情。 在工作表事件Worksheet_BeforeRightClick中,我有以下内容:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    mRightClick.RightClickOnMoMList rngTarget:=Target, boolCancel:=Cancel
End Sub

然而,当我右键单击文本框时它甚至不输入它(但同一工作表的单元格确实有效)。我怀疑这是由于Target参数是一个范围。

是否有办法让该事件陷阱右键单击文本框等形状?

1 个答案:

答案 0 :(得分:2)

我刚刚这样做了:
  - 打开Excel并进入设计模式
  - 在工作表中添加了一个文本框
  - 双击文本框,将我带到该控件的Change事件
  - 我选择了MouseUp事件

你所追求的是按钮= 2表示右键(左键是1)。

因此...

Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
                            ByVal Shift As Integer, _
                            ByVal X As Single, ByVal Y As Single)

    If Button = 1 Then
        MsgBox "Left-click"
    ElseIf Button = 2 Then
        MsgBox "Right-click"
    End If

End Sub