将TextBox复制到剪贴板

时间:2015-11-10 22:39:08

标签: excel vba excel-vba

我尝试复制剪贴板中的所有文本框(当我左键单击文本框时)。我收到错误:用户定义的类型未定义。代码:

Sub TextBox1_Click()
Dim DataObject As DataObject
          Set DataObject = New DataObject
          DataObject.SetText Me.TextBox1.Text
          DataObject.PutInClipboard
End Sub

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您需要将其指定为MSForms.DataObject:

Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.SetText Me.TextBox1.Text
clipboard.PutInClipboard

答案 1 :(得分:1)

首先:您不能使用任何使用的名称命名变量,例如类型,内置函数,......
因此,将Dim DataObject As DataObject更改为Dim AnyThingElseYouWant As DataObject

之后, 2选项,如果您仍有错误

  1. 您可能需要明确地将DataObject引用为Forms库,例如
    Dim Clipboard as MSForms.DataObject

  2. 您缺少参考:

  3. 如果引用列表中未列出MSForms,请转到添加引用,然后单击“浏览...”按钮以自行查找该文件。

    MSForms位于名为FM20.dll的文件中(至少对于版本2.0;其他版本将相应编号),该文件可能位于Windows \ System32文件夹中。

    如果找不到该文件,可能会以某种方式被删除,您可能需要重新安装。