Версия для печати

Как определить первую заполненную ячейку на листе?

Что умеет Excel

 

Раз уж мы научились определять последнюю заполненную ячейку на листе, то теперь неплохо бы научиться определять и первую :-) Хотя бы так, для общего образования. Для чего это может понадобиться? Да хотя бы для поиска заоголовка таблицы, если таблица «плавающая». Т.е. таблица может менять свое положение на листе, а нам крайне необходимо найти, где она начинается.

Sub Get_First_Cell()
    Dim lFirstRow As Long, lFirstCol As Long, rFndRng As Range
    'проверяем, есть ли данные в первой ячейке диапазона данных
    If ActiveSheet.UsedRange.Cells(1, 1) <> "" Then
        lFirstRow = ActiveSheet.UsedRange.Row
        lFirstCol = ActiveSheet.UsedRange.Column
    Else
        'ищем ячейку с любым значение(так же с формулой)
        Set rFndRng = ActiveSheet.UsedRange.Find("*", , xlFormulas, xlWhole)
        If rFndRng Is Nothing Then
            MsgBox "Лист не содержит данных", vbInformation, "Информация": Exit Sub
        End If
        lFirstRow = rFndRng.Row: lFirstCol = rFndRng.Column
    End If
    MsgBox "Номер строки первой заполненной ячейки: " & lFirstRow & vbNewLine & _
           "Номер столбца первой заполненной ячейки: " & lFirstCol
End Sub
Sub Get_First_Cell()
    Dim lFirstRow As Long, lFirstCol As Long, rFndRng As Range
    'проверяем, есть ли данные в первой ячейке диапазона данных
    If ActiveSheet.UsedRange.Cells(1, 1) <> "" Then
        lFirstRow = ActiveSheet.UsedRange.Row
        lFirstCol = ActiveSheet.UsedRange.Column
    Else
        'ищем ячейку с любым значение(так же с формулой)
        Set rFndRng = ActiveSheet.UsedRange.Find("*", , xlFormulas, xlWhole)
        If rFndRng Is Nothing Then
            MsgBox "Лист не содержит данных", vbInformation, "Информация": Exit Sub
        End If
        lFirstRow = rFndRng.Row: lFirstCol = rFndRng.Column
    End If
    MsgBox "Номер строки первой заполненной ячейки: " & lFirstRow & vbNewLine & _
           "Номер столбца первой заполненной ячейки: " & lFirstCol
End Sub

Как видите — все очень просто. Никаких особых заморочек и трудностей.

Так же см.:
Как определить последнюю ячейку на листе через VBA?



Поддержать автора сайта
Поделиться ссылкой
  1. Пока что нет комментариев.

Комментарий будет добавлен после проверки администратором.
Комментарии, не имеющие отношения к комментируемой статье, будут удаляться без уведомления и объяснения причин. Если есть вопрос по проблеме в Excel- добро пожаловаться на Форум