Excel VBA,错误438“对象不支持此属性或方法

我有这个代码,我已经得到了一些帮助,但我遇到了一个问题,或者我认为是一个问题。 最后的查询,我被告知,该对象不支持此属性或方法。 我知道这可能是一件容易的事,但是我的大脑正在冒烟。 如果有人知道为什么会发生这种情况,我想要一些帮助。

谢谢。

Option Explicit Sub Update_Dakota() Dim wsDAO As Worksheet 'Dakota OOR Dim wsDAD As Worksheet 'Dakota Data Dim wsDAR As Worksheet 'Dakota Archive Dim wsPOR As Workbook 'New Workbook Dim lastrow As Long, fstcell As Long Dim strFile As String, NewFileType As String, filename As String Set wsDAO = Sheets("Dakota OOR") Set wsDAD = Sheets("Dakota Data") Set wsDAR = Sheets("Dakota Archive") With Application .ScreenUpdating = False .DisplayAlerts = False .EnableEvents = False End With lastrow = wsDAD.Range("B" & Rows.Count).End(xlUp).Row + 1 With wsDAD .Range("I2").Formula = "=COUNTIFS('Dakota OOR'!$B:$B,$A2,'Dakota OOR'!$D:$D,$C2, 'Dakota OOR'!$G:$G,$F2)" .Range("J2").Formula = "=IF(I2,""Same"",""Different"")" wsDAD.Range("I2:J2").Copy wsDAD.Range("I3:J" & lastrow) wsDAD.Range("I:J").Calculate End With strFile = Application.GetOpenFilename() NewFileType = "Excel Files 2007 (*.xls)" Set wsPOR = Application.Workbooks.Open(strFile) lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1 wsPOR.Range("A2:G" & lastrow).Select End Sub 

错误在这里

 lastrow = wsPOR.Range("A" & Rows.Count).End(xlUp).Row + 1 

wsPOR是一个工作簿,而不是工作表。 如果您正在使用该工作簿的“Sheet1”,请尝试此操作

 lastrow = wsPOR.Sheets("Sheet1").Range("A" & _ wsPOR.Sheets("Sheet1").Rows.Count).End(xlUp).Row + 1 

同样

 wsPOR.Range("A2:G" & lastrow).Select 

应该

 wsPOR.Sheets("Sheet1").Range("A2:G" & lastrow).Select