小编wal*_*abe的帖子

Excel Vba细胞异常行为.对合并细胞的研究

已解决:错误是由于在别处操纵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") …

excel vba find excel-vba

5
推荐指数
1
解决办法
314
查看次数

标签 统计

excel ×1

excel-vba ×1

find ×1

vba ×1