Vba 简单范围上的应用程序定义错误
我尝试调试这段代码已经有一段时间了,有人知道其中的问题是什么吗 代码: 错误(突出显示以Vba 简单范围上的应用程序定义错误,vba,excel,Vba,Excel,我尝试调试这段代码已经有一段时间了,有人知道其中的问题是什么吗 代码: 错误(突出显示以字段列表()开头的行): 即时窗口: ?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 我认为原因很简单。代码中的错误是,单元格单元格(2,1)和单
字段列表()开头的行
):
即时窗口:
?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
我认为原因很简单。代码中的错误是,单元格
单元格(2,1)
和单元格(最后一个字段,1)
未完全限定。出现此错误是因为代码运行时,Summary\u File.Sheets(“设置”)
未处于活动状态。因此,人们应该始终完全限定对象
试试这个。请注意下面代码中它们前面的点
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)。行
您可能最终选择整个列!如果您只想选择到最后一行,那么您可能希望看到您需要在每次调用单元格之前放置摘要文件.Sheets(“设置”)
。如果您只是将单元格
,Excel会将其解释为活动工作表中的单元格,即使它位于范围正确的范围
函数的参数中。将范围指定给数组时没有括号将其更改为字段列表=摘要文件.Sheets(“设置”)。范围(单元格(2,1),单元格(最后一个字段,1))
感谢输入人员这看起来像是一个进步,但在包含了两个解决方案后出现了一个新错误运行时错误13:Tyep mistchy由于没有添加.Value
,您的类型不匹配。看看我贴的答案。您可能需要刷新页面还有一个提示:尽量避免使用.End(xlDown)。行您可能会选择整个列!如果您只想选择到最后一行,那么您可能希望看到我希望它是那么简单,在rdhs发布的注释中类似的解决方案,但我复制并粘贴了您的解决方案,我想它取得了进展,因为我得到了“运行时错误13:类型不匹配”。所以这并不是那么简单,但是非常感谢。对不起,那是个错误。非常感谢:)
?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
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