我一直在尝试完成一个代码,该代码需要我将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)
可以解决此问题,但是它会粘贴无法使用的数据。我在这里做错什么事?
答案 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
的少数情况之一