Как определить первую заполненную ячейку на листе?
Что умеет 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?

2778
