我正在尝试将单元格内容复制到剪贴板中。
我已阅读并尝试了Excel 2007帮助文件中提供的确切示例。但是由于某种原因,DataObject对象无效。所以这个例子:
Dim MyData As DataObject
Private Sub CommandButton1_Click()
Set MyData = New DataObject
MyData.SetText TextBox1.Text
MyData.PutInClipboard
TextBox2.Paste
End Sub
Private Sub UserForm_Initialize()
TextBox1.Text = "Move this data to a " _
& "DataObject, to the Clipboard, then to " _
& "TextBox2!"
End Sub
在我的情况下不起作用。我现在已经搜索了一段时间,但我找不到DataObject对象无法使用的答案。
这是我的代码:
Dim MyData As DataObject
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 3 Then
Set MyData = New DataObject
MyData.SetText ActiveCell.Offset(-1, -1).Text
MyData.PutInclipboard
End If
End Sub
编译时出错:“用户定义的类型未定义”,它突出显示“MyData As DataObject”行。
还有另一种方法可以将单元格中的文本复制到剪贴板吗?
答案 0 :(得分:8)
好的,很少:
首先,您需要添加对“Microsoft Forms 2.0对象库”的引用,如果您不想搜索,只需将用户表单添加到项目中,然后立即将其删除,引用将保留。您需要该引用才能使用DataObject
我会附上一些我开始工作的代码,我改变了偏移但是把它们变成你需要的......
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Set MyData = New DataObject
If ActiveCell.Column = 3 Then
MyData.SetText ActiveCell.Offset(-1, 0).Text
MyData.PutInClipboard
End If
End Sub