已解决:错误是由于在别处操纵find属性引起的
我对VBA世界很新,我对我遇到的Range .Find函数的一些异常行为有疑问.我有一些代码,我在子程序中调用如下.
For i = 2 To UBound(pullDataPckg)
For j = 1 To UBound(section)
Set cell = dataSheet.Cells.Find(What:=section(j))
'Below returns nothing on call 2, works for call 1
'Set cell = dataSheet.Cells.Find(What:="Value from section(j) in second call")
If Not cell Is Nothing Then
'Do some stuff
End If
Next
Next
Run Code Online (Sandbox Code Playgroud)
pullDataPckg并且section是两个字符串数组,dataSheet是一个工作表对象,代码都位于Sub我调用从工作表中提取数据值.
我遇到的异常行为Find总是返回单元格,因为Nothing我第二次调用sub(搜索的单元格是我知道的所有合并单元格,如果我取消单元格,那么find方法能够找到细胞).
但是,如果我改为使用,dataSheet.Range("A1:R999").Find(What:=section(j))则该方法成功找到该单元格.因此,Cells当与合并单元格一起使用时,问题似乎与属性有关.
我在同一工作表上调用sub两次,所以我添加了一个dataSheet.Cells.Find(What:="Known Value in section array of Second Sub Call") …