应用程序在简单范围上定义了错误
我试图debugging这段代码已经有相当长的一段时间了,有谁知道它有什么问题?
码:
Sub Find_Field_List() Dim Last_Field As Integer Dim Field_List() As Variant Last_Field = Summary_File.Sheets("Settings").Cells(1, 1).End(xlDown).Row Field_List() = Summary_File.Sheets("Settings").Range(Cells(2, 1), Cells(Last_Field, 1)) End Sub
错误(突出显示以Field_List()
开头的行):
RunTime Error 1004 Application-Defined or Object-Defined Error
即时窗口:
?Summary_file.Sheets(2).Name Settings Split MBSA.xlsm ?Range(Cells(2,1),Cells(5,1)).Count 4 ?Last_Field 5 ?Summary_File.Sheets(2).Range(Cells(1,1)) Fields
原因很简单,在我看来。 您的代码错误是单元Cells(2, 1)
和Cells(Last_Field, 1)
不完全合格。 而且你得到这个错误,因为在代码运行时, Summary_File.Sheets("Settings")
是不活动的。 因此,人们应该始终充分的资格对象。
尝试这个。 注意下面代码中的DOT 。
Sub Find_Field_List() Dim Last_Field As Integer Dim Field_List() As Variant With Summary_File.Sheets("Settings") Last_Field = .Cells(1, 1).End(xlDown).Row Field_List = .Range(.Cells(2, 1), .Cells(Last_Field, 1)).Value End With End Sub
编辑:
还有一个提示:尽量避免使用.End(xlDown).Row
您可能会select整个列! 如果你只想select最后一行,那么你可能想看到这个