【问题标题】:Right click to copy not functioning properly右键复制无法正常工作
【发布时间】:2014-08-04 21:05:23
【问题描述】:

我有一个文本框,我想启用右键单击功能以便复制。

我有下面的代码(感谢互联网),但虽然它显示了菜单,但似乎没有任何内容进入剪贴板。

在模块 1 中:

Sub MakePopUp()
'Remove any old instance of MyPopUp
On Error Resume Next
CommandBars("MyPopUp").Delete
On Error GoTo 0

With CommandBars.Add(name:="MyPopUp", Position:=msoBarPopup)
    .Controls.Add Type:=msoControlButton, ID:=19
End With
End Sub

在我的用户表单文本框上:

Private Sub ResultsBox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As     Single, ByVal Y As Single)
MakePopUp
    If Button = 2 Then
    Application.CommandBars("MyPopUp").ShowPopup
End If
End Sub

我在这里错过了一件吗?谢谢

【问题讨论】:

    标签: vba textbox copy controls paste


    【解决方案1】:

    恐怕你错过了一个很小但很重要的部分。当您单击 Copy 菜单项时,您从未告诉代码该做什么,因此没有任何反应。

    要解决这个问题,请在 Module1 中替换此行:

    .Controls.Add Type:=msoControlButton, ID:=19
    

    用这个:

    .Controls.Add(Type:=msoControlButton, ID:=19).OnAction = "Textbox_Copy"
    

    然后,仍然在Module1 中,添加以下实现我们上面提到的Textbox_Copy 操作的Sub。我假设您的用户表单名为UserForm1,因此如果名称不同,您应该更改名称。

    Public Sub Textbox_Copy()
      UserForm1.ResultsBox.Copy
    End Sub
    

    有几种方法可以实现您想要的。通过互联网的快速搜索,如果您想更好地了解这一点,那么您可以查看以下内容:

    前者足够简单,但后者需要更多“技巧”才能理解。

    前者可能对你正在做的事情已经足够了,它实现了额外的操作,如 CutPasteSelect All

    【讨论】:

    • 非常感谢您提供的精彩资源!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2017-01-20
    • 2016-05-05
    相关资源
    最近更新 更多