gpt4 book ai didi

vba - 简单范围上的应用程序定义错误

转载 作者:行者123 更新时间:2023-12-04 22:04:59 25 4
gpt4 key购买 nike

我试图调试这段代码已经有一段时间了,有人知道其中有什么问题吗?

代码:

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")代码运行时不活动。因此,人们应该始终完全限定对象。

尝试这个。注意 网点在下面的代码中。

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您最终可能会选择整个列!如果您只想选择直到最后一行,那么您可能希望看到 THIS

关于vba - 简单范围上的应用程序定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com