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

问题描述

我明白了

错误 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

标签: excelvbacopy

解决方案


试试这个:

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

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

Mor info 在这里你做对了,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


推荐阅读