Makro ma znajdować pierwsza wolna komórke w kolumnie A:

Sub AAA()

Dim rngToSearch As Range

Dim FirstBlankCell As Range

Dim firstEmptyRow As Long

Dim arkusz As Worksheet

Set arkusz = ActiveWorkbook.Sheets(1)

Set rngToSearch = arkusz.Range("A:A")

'czy pierwsza pusta

If IsEmpty(rngToSearch.Cells(1, 1)) Then

firstEmptyRow = rngToSearch.Cells(1, 1).Row

Else

Set FirstBlankCell = rngToSearch.FindNext(After:=rngToSearch.Cells(1, 1))

If Not FirstBlankCell Is Nothing Then

firstEmptyRow = FirstBlankCell.Row

Else

'brak pustych

End If

End If

arkusz.Cells(firstEmptyRow, 1).Value = "WOLNE!"
@efem: Używasz funkcji FindNext, która ponawia ostatnie wyszukiwanie, zatem funkcja da odpowiedni rezultat, tylko jeśli ostatnie wyszukiwanie było "puste". W innym przypadku znajdzie kolejną komórkę, która pasuje do ostatniego wyszukiwania
@efem: To zadziała, ale przy dużych obszarach danych będzie działać bardzo wolno, poza tym wywali się jak nie będzie pustych. Spróbuj z tym:

'wyszukanie ostatniego niepustego

LastNonBlankRow = rngToSearch.End(xlDown).Row

'sprawdzenie, czy kolejny wiersz należy do obszaru wyszukiwania

If rngToSearch(rngToSearch.Count).Row > LastNonBlankRow Then

firstEmptyRow = LastNonBlankRow + 1

Else

'brak pustych

End If