无法从剪贴板粘贴特殊内容

时间:2019-12-03 16:18:27

标签: excel vba

我一直在尝试完成一个代码,该代码需要我将Ctrl + A / C网页中的数据粘贴到工作表中。这是我到目前为止所做的。

Sub testPaste()

Sheets("sheet2").Delete
Sheets.Add.Name = "Sheet2"
Application.DisplayAlerts = False

Dim wscel As Range
Set wscel = Sheets("sheet2").Range("A1")

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject
DataObj.GetFromClipboard

strPaste = DataObj.GetText

wscel.PasteSpecial (xlPasteValues)

End Sub

但是该代码给我一个错误1004。删除(xlPasteValues)可以解决此问题,但是它会粘贴无法使用的数据。我在这里做错什么事?

1 个答案:

答案 0 :(得分:3)

您正在使用Range.PasteSpecial,它适用于粘贴 Excel格式的范围对象-找到的文档here。不幸的是,剪贴板上的不是 Excel范围对象,因此您需要使用the Worksheet.PasteSpecial method

如果您的剪贴板包含例如HTML示例,那么您可以像这样“粘贴为文本”:

    wscel.Worksheet.Activate
    wscel.Activate
    wscel.Worksheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= False

是的,这是您无法avoid using Select

的少数情况之一