应用程序定义的错误或对象定义的错误3

我试图从"sheet1"获取特定的数据,并把它放在另一个表格中(特别是财务数据)。

在这个代码中,我试图创build一个范围,只包含从stream动资产到stream动资产总额的财务数据部分(如果没有非stream动资产,则为总资产)。

它抛出错误的"Set range1"行。

我正在尝试创build一个从当前资产出售到整个资产单元的范围,以便稍后在代码中使用。

 lastCol = Worksheets("Sheet1").Range("a1").End(xlToRight).Column lastRow = Worksheets("Sheet1").Cells(65536, lastCol).End(xlUp).Row Set crntassone = Worksheets("Sheet1").Range("a1", Worksheets("Sheet1").Cells(lastRow, lastCol)).Find("Current Assets:") If Worksheets("Sheet1").Range("a1", Worksheets("Sheet1").Cells(lastRow, lastCol)).Find("Total Current Assets") Is Nothing Then Set ttlass = Worksheets("Sheet1").Range("a1", Worksheets("Sheet1").Cells(lastRow, lastCol)).Find("Total Assets") Set range1 = Worksheets("Sheet1").Range(crntassone, ttlass) Else Set crntasstwo = Worksheets("Sheet1").Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Find("Total Current Assets") Set range1 = Range(crntassone, crntasstwo) End If 

表格的范围对象不会像您所定义的那样带参数。 你应该写这样的参数

 Sheets("Sheet1").Range(cells(1,2),cells(3,4)) 

注意:1,2,3,4只是用于例如。 找出这个值,因为我不能看到你的Excel

事实certificate,我的范围“查找”实际上并没有跨越我的整个表。 由于Excel中我的图表格式化,“xlToRight”和“xlUp”没有跨越所有正在使用的行和列的全部(难以用文字解释)。 除了为“Find”指定某些额外的参数之外,我还使用了“SpecialCells(xlCellTypeLastCell)”来定位表单中的最后一个单元格。 这是我做的改变

 Dim LastRow As Long LastRow = Worksheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell).Row Dim LastColumn As Long LastColumn = Worksheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell).Column Set crntassone = Worksheets("Sheet1").Range("A1", Cells(LastRow, LastColumn)).Find(What:="Current assets:", After:=Worksheets("Sheet1").Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False) If Worksheets("Sheet1").Range("A1", Cells(LastRow, LastColumn)).Find("Total Current Assets") Is Nothing Then Set ttlass = Worksheets("Sheet1").Range("A1", Cells(LastRow, LastColumn)).Find("Total Assets") Set range1 = Worksheets("Sheet1").Range(crntassone, ttlass)