excel VBA对于Range对象的End方法 – 应用程序定义或对象定义的错误

我遇到了使用范围对象的End方法的错误。

下面的代码是从我的程序摘录,当我到最后一行时,我得到以下错误:“应用程序定义或对象定义的错误”

Sub DataGroup(testCell, j, k) Dim archive As Range Set dataCellsA = Worksheets("DATA").Range("B2") Set dataCellsB = Worksheets("DATA").Range("I2") For i = 0 To 30 Set currentLine = testCell.Offset(i, 0) Set archive = Worksheets("ARCHIVE").Range("B4").End(x1Down) 

然而,在我的程序的后期部分,我似乎有相同的实现,但是我没有收到这部分的任何错误。

  Set dataCellsA = Worksheets("DATA").Range("C2") Set dataCellsB = Worksheets("DATA").Range("J2") Dim lastCellA As Range Dim lastCellB As Range Set lastCellA = dataCellsA.End(xlDown) Set lastCellB = dataCellsB.End(xlDown) 

两者有什么区别? 我确保将variables声明为范围,并且我小心地使用“Set”指定来确保它是一个对象,而不是值。

所以,这里是答案:你有x1Down你应该有xlDown (1而不是l)