In general, getting the last row of a given column in Excel is easily done with a User-Defined Function in VBA:
Function lastRow(wsName As String, Optional c
This one (without an array formula)
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),ROW(A:A))
How does it work?
NOT(ISBLANK(A:A)) returns an array of True and False1/(NOT(ISBLANK(A:A))) then 1 divided by that array results in another array of 1 or #DIV/0! which is used as lookup_vector2 as lookup_value which cannot be found because the largest value in the lookup_array is 1, so lookup will match the last 1 in the array.result_vector we use ROW(A:A) to get the row number of the last used cellA:A to get the value instead of the row number).