我有一个粘贴值并将其分配给ctrl+v
的宏。除了从Outlook邮件标题复制的文本外,它对所有人都适用。有一个
运行时错误1004“对象'Range'的方法'PasteSpecial'失败”。
有人知道为什么吗?以及如何解决?
我花了很多时间在网上搜索答案,但没有结果。
我的代码:
Sub Paste_As_Value()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
答案 0 :(得分:1)
我找到了解决问题的方法。有代码:
Sub Paste_As_Value()
On Error Resume Next
Selection.PasteSpecial Paste:=xlPasteValues
If Err.Number > 0 Then
ActiveSheet.PasteSpecial Format:="Tekst Unicode", Link:=False, _
DisplayAsIcon:=False, NoHTMLFormatting:=True
End If
End Sub
答案 1 :(得分:0)
如果您想更好地控制剪贴板中的数据,可以使用下面的代码。例如,您可以使用此测试来测试标题是否可以全部作为文本检索。
您需要在VBA参考中打开“ MS Forms 2.0对象库”才能使用DataObject。
Dim DataObj As MSForms.DataObject, ClipStr as string
Set DataObj = New MsForms.DataObject 'dataobject with ability to retrieve data from clipboard
DataObj.GetFromClipboard ''Gets data from clipboard
ClipStr = DataObj.GetText(1) ''Get content from dataobj
msgbox ClipStr