VBA 粘贴剪贴板内容(只有值)

VBA Paste clipboard content (only value)

我正在尝试将剪贴板内容粘贴到单元格 "A1"

Range("A1").PasteSpecial xlPasteValues

但是我收到 "PasteSpecial method of Range class failed" 错误!

感谢任何帮助!

请测试此代码(它仅适用于文本剪贴板类型):

Sub testClipB()
 Dim CB As Object
 Set CB = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
 CB.GetFromClipboard
 Range("A1").value = CB.GetText
End Sub

或者这个:

Sub testPasteClipB_Bis()
    Dim DataObj As MSForms.DataObject
    Set DataObj = New MSForms.DataObject
    DataObj.GetFromClipboard

    Range("A2").value = DataObj.GetText(1)
End Sub

仅粘贴选择的值

错误

运行-时间错误'1004':

范围 class 的 PasteSpecial 方法失败

事实

xlPasteValues 仅在 单元格 的(内容)被 复制(进入剪贴板)后使用。

问题

总是在没有复制单元格或剪切单元格后出现此错误。

解决方案

因此您应该适当地检查(测试)CutCopyMode,您的公式就可以了:

Sub PSpec()
     If Application.CutCopyMode = xlCopy Then
         Range("A1").PasteSpecial xlPasteValues
     End If
End Sub