我正在尝试将单元格内容复制到剪贴板中.
我已阅读并尝试了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"行.
是否有另一种方法可以简单地将单元格中的文本复制到剪贴板?
好的,很少的东西:
首先,您需要添加对"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