Excel VBA行中的第一个非空单元格
Posted
技术标签:
【中文标题】Excel VBA行中的第一个非空单元格【英文标题】:First non empty cell in row Excel VBA 【发布时间】:2018-09-20 17:04:06 【问题描述】:我正在尝试使用 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,因为它需要花费太多时间来处理我的数据。
【问题讨论】:
尝试将After
参数作为Selection.cells(selection.cells.count)
提供
【参考方案1】:
尝试提供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
【讨论】:
谢谢蒂姆。它解决了我的问题,并且我学到了一些东西。以上是关于Excel VBA行中的第一个非空单元格的主要内容,如果未能解决你的问题,请参考以下文章
VBA宏在Excel中格式化1个包含文本行的单元格,并将这些行添加到单独的行中