我在尝试使用Cells.Find函数时得到运行时error (9) Subscript out of range。
根据官方文件,只有几种可能的原因:
- 引用了不存在的数组元素
- 声明了一个数组,但没有指定元素数
- 引用了不存在的集合成员
- 对集合使用!运算符时,!隐式指定键
这里有一些代码,似乎与我有关,也许有人有一个想法:
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
另外,如果SidoO.能给予我一个提示,如何避免偏移方法与查找功能相结合,请随意拍摄。:)
正在浏览论坛和官方文档以排除原因。检查作业和拼写1000次,但无法找出问题的原因...
此外,我排除了Offset方法,以查看这是否会导致不同的错误。
1条答案
按热度按时间hgqdbh6s1#
Set rangePartner = Range(Partner.Cells(2, 2), Partner.Cells(2, 2).End(xlDown))
需要Range
的显式父对象,否则它将使用活动工作表,如果该工作表不是Partner
,则会导致问题,因为cells
使用Partner
。您的
With
当前未执行任何操作,您需要在cells
之前添加一个.
。LookIn:=Values
应为xlvalues
不要在与
Find
相同的行中使用Range
方法或属性。如果Find
失败,则程序将出错,因为它返回一个没有属性或方法的空对象。我没有看到
partnerid
的值。总的来说是这样的: