如何解决此代码中的“ Error438:对象不支持此属性或方法”?

时间:2019-07-04 21:05:28

标签: excel vba copy

我知道

  

错误438:对象不支持此属性或方法   当我尝试从一个工作簿粘贴到另一个工作簿时。语法错误吗?

Sub ImportScen()

Dim ALMscen As Workbook
Set ALMscen = ActiveWorkbook

Dim Wrkbk as Workbook
Set Wrkbk = Workbooks.Add
Wrkbk.SaveAs Filename:=filepath & "\" & file_name & ".xlsx"

ALMscen.Range(Cells(firstrow, 6), Cells(lastrow, 15)).Copy _
    Destination:=Wrkbk.Worksheets("Sheet1").Range("E2")
'Error occurs on these two previous lines 

Wrkbk.Worksheets("Sheet1").Range(Cells(2, 15), Cells(numscen * 115 + 1, 15)).Value = 0

ALMscen.Range(.Cells(firstrow, 16), Cells(lastrow, 23)).Copy _
    Destination:=Wrkbk.Worksheets("Sheet1").Range("P2")
'Error occurs on these two previous lines 

ALMscen.Range(Cells(firstrow, 25), Cells(lastrow, 34)).Copy _
    Destination:=Wrkbk.Worksheets("Sheet1").Range("X2")
'Error occurs on these two previous lines 

Wrkbk.Worksheets("Sheet1").Range(Cells(2, 34), Cells(numscen * 115 + 1, 34)).Value = 0
Wrkbk.Worksheets("Sheet1").Range(Cells(2, 35), Cells(numscen * 115 + 1, 35)).Value = 20
Wrkbk.Worksheets("Sheet1").Range(Cells(2, 36), Cells(numscen * 115 + 1, 36)).Value = 95

1 个答案:

答案 0 :(得分:1)

尝试一下:

ALMscen.Worksheets(1).Range(Cells(firstrow, 6), Cells(lastrow, 15)).Copy _
Destination:=Wrkbk.Worksheets("Sheet1").Range("E2")

其中:Sheet(1)是工作簿的原始工作表,您也可以像这样Sheet("_sheetname_")来调用工作表。其中 sheetname 是工作表的实际名称。

摩尔信息 在这里,Wrkbk.Worksheets("Sheet1").Range(Cells(2, 34), Cells(numscen * 115 + 1, 34)).Value = 0可以正确执行操作,因为您可以在集合内调用对象。

看: 一个工作簿包含工作表,如果您要调用任何工作表,则需要遵守订单 我看到你了

Wrkbk.Worksheets("Sheet1").Range(Cells(2, 34), Cells(numscen * 115 + 1, 34)).Value = 0