Как найти первую непустую ячейку в столбце?

Первая строка - все заголовки, а первый столбец - все даты. Я ищу код VBA / макрос, чтобы найти и выбрать первую непустую ячейку в каждом столбце после заголовков. Например, найдите первую непустую ячейку в диапазоне B2 и выберите ее.

3 ответа

Решение

Если ваша первая строка является строкой заголовка, вы можете использовать:

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

В каждом столбце iпервая непустая ячейка

set first_ne = cells(2,i)

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

С использованием 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
Другие вопросы по тегам