在VBA中在DoubleClick上将单元格值复制到剪贴板(DataObject)时出现问题

时间:2018-10-31 00:34:31

标签: excel vba

VBA的新手。我在尝试自动从已双击的单元格中复制文本时遇到问题。我已经尝试了所有方法,但是显然有些错误。任何帮助将不胜感激。

我在ThisWorkbook中的代码:

Option Explicit

Dim MyData As DataObject

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = False
    Set MyData = New DataObject
    MyData.SetText Target.Text
    MyData.PutInClipboard
    Cancel = True
End Sub

1 个答案:

答案 0 :(得分:0)

看起来应该可以正常工作(假设您对Microsoft Forms 2.0对象库有引用)。但是当我尝试时,我得到的只是几个方形字符。如果我删除了Cancel = True行,那么它可以正常工作,但可能不是您想要的。

不知道为什么它不能与Cancel = True一起使用,但是经过一番尝试,似乎还是行得通的:

Option Explicit

Dim MyData As DataObject

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = False
    Set MyData = New DataObject
    Target.Copy
    MyData.GetFromClipboard
    Application.CutCopyMode = False
    MyData.PutInClipboard
    Cancel = True
End Sub