Excel VBA将文本框复制到剪贴板

时间:2018-12-12 19:15:20

标签: excel vba

我当前正在尝试使用命令按钮将文本从“文本框”复制到剪贴板。这是我的完整代码:

Private Sub CommandButton1_Click()
    With New MSForms.DataObject
        .SetText TextBox1.Text
        .PutInClipboard
    End With
End Sub

我一直收到错误消息“需要运行时错误'424'对象。调试导致“ .setText TextBox1.Text突出显示并说出” MyData

如果您不能告诉我我是VBA的超级菜鸟,但我正在尝试学习。我已经花了很多时间尝试不同的方法,所以任何帮助都会很棒。即使这意味着我尝试使用其他类型的代码。

4 个答案:

答案 0 :(得分:0)

看看这个: https://stackoverflow.com/a/14226925/8716187

Dim DataObj As New MSForms.DataObject

'Put a string in the clipboard
DataObj.SetText Thisworkbook.Worksheet("Sheet1").TextBox1.Text 'name of your textbox here
DataObj.PutInClipboard

'Get a string from the clipboard
DataObj.GetFromClipboard
Debug.Print DataObj.GetText

**经过测试,可以正常工作,这里没有作用域问题,尽管文本框,控制按钮,工作表代码都在同一作用域中-您可能需要描述对象的位置 enter image description here -WWC

我测试了您的版本,它也可以正常工作,请确保您的TextBox1符合您的想法。如何创建它,如果在运行时它可能不是您认为的数字(名称)。

这也可以编译并正常运行:

Private Sub CommandButton1_Click()


    With New MSForms.DataObject

    'Put a string in the clipboard
    .SetText TextBox1.Text 'name of your textbox here
    .PutInClipboard

    'Get a string from the clipboard
    .GetFromClipboard
    Debug.Print .GetText

    End With

End Sub

答案 1 :(得分:0)

我发现唯一有效的方法是Microsoft solution。复制代码并将其粘贴到新模块(称为“ ClipBoard ”)和可靠的剪贴板功能中。

答案 2 :(得分:0)

这对我有用。它会将Textbox1中的所有文本放入剪贴板,因此可以通过粘贴命令在其他应用程序中使用。

TextBox1.SetFocus

TextBox1.SelStart = 0

TextBox1.SelLength = Len(TextBox1.Text)

TextBox1.Copy

答案 3 :(得分:0)

我认为这一定可以正常工作

With Me.TextBox1 .SelStart = 0 .SelLength = Len(.Text) .Copy End With