
[英]Excel VBA Beginner - Getting Run time error '9' Subscript out of range
[英]Excel VBA - Subscript Out of Range Error (Run Time: Error 9)
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
尝试使用 Cells.Find Function 时出现运行时错误 (9) 下标超出范围。
根据官方文档,只有几种可能的原因:
这是一些与我相关的代码,也许有人有想法:
Dim Partner As Worksheet
Dim rangePartner As Range
Set Partner = Worksheets("Partner")
Set rangePartner = Range(Partner.Cells(2, 2), Partner.Cells(2, 2).End(xlDown))
Dim partnerid As String
Dim segment As String
With rangePartner
segment = Cells.Find(partnerid, LookIn:=Values, SearchOrder:=xlByRows).Offset(0, 3)
End With
另外,如果可以给我提示如何结合查找function避免偏移方法,请随时拍摄。 :)
正在浏览论坛和官方文档以排除原因。 检查作业和拼写 1000 次,但无法解决问题所在......
此外,我排除了 Offset 方法,以查看这是否会导致不同的错误。
Set rangePartner = Range(Partner.Cells(2, 2), Partner.Cells(2, 2).End(xlDown))
Range
需要明确的父级 object 否则它会使用活动工作表,如果该工作表是不是Partner
,因为cells
使用Partner
。
您的With
当前什么都不做,您需要一个.
cells
的前面。
LookIn:=Values
应该是xlvalues
不要在与Find
相同的行中使用Range
方法或属性,如果Find
失败,程序将出错,因为它返回一个没有属性或方法的空 object。
我没有看到partnerid
的值。
总的来说是这样的:
Dim Partner As Worksheet
Dim rangePartner As Range
Set Partner = Worksheets("Partner")
With Partner
Set rangePartner = .Range(.Cells(2, 2), .Cells(2, 2).End(xlDown))
End With
Dim partnerid As String 'This still needs a value assigned
Dim segment As Range
With rangePartner
Set segment = .Cells.Find(partnerid, LookIn:=xlValues, SearchOrder:=xlByRows)
If Not segment Is Nothing Then
Set segment = segment.Offset(0, 3)
End If
End With
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.