来自Outlook邮件的PasteSpecial

时间:2019-02-20 12:46:29

标签: excel vba

我有一个粘贴值并将其分配给ctrl+v的宏。除了从Outlook邮件标题复制的文本外,它对所有人都适用。有一个

  

运行时错误1004“对象'Range'的方法'PasteSpecial'失败”。

有人知道为什么吗?以及如何解决?

我花了很多时间在网上搜索答案,但没有结果。

我的代码:

Sub Paste_As_Value()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub

2 个答案:

答案 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