如何在列中找到第一个非空白单元格?

时间:2011-06-13 20:28:32

标签: excel vba

第一行是所有标题,第一列是所有日期。我正在寻找vba代码/宏来查找并选择标题后每列中的第一个非空单元格。例如,找到B2范围内的第一个非空单元格并选择它。

3 个答案:

答案 0 :(得分:14)

IF 您的第一行是标题行,然后您可以使用:

Columns("B").SpecialCells(xlCellTypeBlanks)(1).Select

修改

抱歉误读了这个问题,上面的代码是完全错误的。解决方案:

注意:它们是空白和空白之间的区别。

首次非空白(如标题所示)尝试:

With Columns("B")
    .Find(what:="*", after:=.Cells(1, 1), LookIn:=xlValues).Activate
End With

首次非空(如问题正文)尝试:

与上面不同,这也会找到非空单元格,其中公式等于空白即= IF(A1 = 1,A1,“”)

With Columns("B")
    .Find(what:="*", after:=.Cells(1, 1), LookIn:=xlFormulas).Activate
End With

答案 1 :(得分:2)

在每列i中,第一个非空单元格是

set first_ne = cells(2,i)

if isempty(first_ne.value) then
  set first_ne = first_ne.end(xldown)
end if

答案 2 :(得分:1)

使用IsEmpty功能可以检查单元格是否为空白:

Sub GetFirstNonEmptyCell()
    Dim startCell as range, firstNonEmptyCell as range

    Set startCell = Range("B2") 'change this depending on which column you are looking at

    If VBA.IsEmpty(startCell.Value) Then
        MsgBox "No data in this column"
    Else
        Set firstNonEmptyCell = startCell.End(xlDown)
        MsgBox "First non empty cell is " & firstNonEmptyCell.Address
    End If    
End Sub