我不知道为什么,我无法让它发挥作用。我把它简化为三行 - 但它仍然给我带来了问题。
基本上我想打开一个工作簿并将一些数据复制到一个主工作簿中。
我有:
Sub copypaste()
Workbooks.Open("...Test.xlsx").Sheets("Sheet1").Cells(1, 1).Copy
ActiveWorkbook.Close
Sheets("Sheet1").Range("A1").PasteSpecial xlPasteValues
End Sub
我已经看到运行时错误438(对象不支持此属性方法),我可以粘贴但只是命中1004应用程序定义的错误或对象定义的错误。
老实说,我不知道在这个简单的任务中我哪里出错了!
提前谢谢你,
汤姆
答案 0 :(得分:0)
在粘贴数据后尝试关闭工作簿。 例如,您可以使用以下内容:
Sub copypaste()
Dim WBopen As Workbook, Wb As Workbook
Set Wb = ActiveWorkbook
Set WBopen = Workbooks.Open("...Test.xlsx")
WBopen.Sheets("Sheet1").Cells(1, 1).Copy
Wb.Sheets("Sheet1").Range("A1").PasteSpecial xlPasteValues
WBopen.Close
End Sub
答案 1 :(得分:0)
因为您在粘贴数据之前关闭了Workbook
,所以它会失败。
如果可以避免,最好不要使用.Copy
和.Paste
。
请参阅下面的示例,了解Values
的直接设置:
Sub copypaste()
Dim wbMaster As Workbook, wbData As Workbook
Set wbMaster = Workbooks("Master.xlsm")
Set wbData = Workbooks.Open("Data.xlsx")
wbMaster.Sheets("Sheet1").Range("A1").Value = wbData.Sheets("Sheet1").Range("A1").Value
wbData.Close False
End Sub