Excel VBA行中的第一个非空单元格

时间:2018-09-20 17:04:07

标签: excel vba is-empty

我正在尝试使用VBA .Find函数连续查找第一个非空单元格。代码如下:

    Sub test()

    With Selection
    Set firstNE = .Find(what:="*", LookIn:=xlValues)
    End With
    Debug.Print firstNE.Address

    End Sub

我遇到的问题是选择范围,例如B4:F4,并且该范围内的所有单元格都不为空,它将返回C4而不是B4。

当B4不为空时发生同样的情况,然后下一个非空为例如E4,它将返回E4而不是B4。

仅当B4以外的所有选择都为空时,才返回B4。

有人可以向我解释吗?

顺便说一句。我不想使用IsEmpty + loop,因为它花费了太多时间来处理我的数据。

1 个答案:

答案 0 :(得分:3)

尝试提供After参数:

Sub test()

    With Selection
       Set firstNE = .Find(what:="*", LookIn:=xlValues, _
                           After:=.Cells(.Cells.count))
    End With

    If Not firstNE Is Nothing Then Debug.Print firstNE.Address

End Sub