首页 > 解决方案 > 无法弄清楚为什么范围类的 PasteSpecial 方法失败 [错误代码 1004]

问题描述

我正在尝试将其他工作簿中的数据粘贴到我编写宏的工作簿中:

Dim excel As excel.Application
Dim wb As excel.Workbook
Dim wb1 As excel.Workbook
Dim sht As excel.Worksheet

Set excel = CreateObject("excel.Application")
excel.Visible = False

Set wbAxes = Workbooks.Open("PATH")

Set wb = excel.Workbooks.Open("PATH")
'wb.Calculate
Set wb1 = excel.Workbooks.Open("PATH")
wb.Worksheets("MySheet1").Calculate

wb.Worksheets("MySheet1").Range("N7:P" & wb.Worksheets("MySheet1").Range("P5").CurrentRegion.Rows.Count).Copy
ThisWorkbook.Sheets("MYSheet").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

wb.Close SaveChanges:=False
wb1.Close SaveChanges:=False

但我面临问题 1004:“范围类的粘贴特殊方法失败”

可以肯定的是,数据已被复制,因为当我执行“CTRL + V”时,它可以很好地粘贴数据,但是由于宏显示而粘贴

错误 1004:范围类的 PasteSpecial 方法失败

编辑 :

当我尝试使用.Paste(下面的代码)而不是.PasteSpecial我得到:

错误 438:对象不支持属性或方法

Dim excel As excel.Application
Dim wb As excel.Workbook
Dim wb1 As excel.Workbook
Dim sht As excel.Worksheet

Set excel = CreateObject("excel.Application")
excel.Visible = False

Set wbAxes = Workbooks.Open("PATH")

Set wb = excel.Workbooks.Open("PATH")
'wb.Calculate
Set wb1 = excel.Workbooks.Open("PATH")
wb.Worksheets("MySheet1").Calculate

wb.Worksheets("MySheet1").Range("N7:P" & wb.Worksheets("MySheet1").Range("P5").CurrentRegion.Rows.Count).Copy
ThisWorkbook.Sheets("MYSheet").Range("A1").Paste

wb.Close SaveChanges:=False
wb1.Close SaveChanges:=False

标签: excelvbacopy-pastepaste

解决方案


推荐阅读