VBA Excel:
Function FirstEmptyRow(oWsh As Worksheet, sCol As String, startRow As Long) As Long
FirstEmptyRow = oWsh.Range(sCol & startRow).End(xlDown).Row
End Function
You can translate it to VB.NET:
Function FirstEmptyRow(oWsh As Object, sCol As String, startRow As Long) As Long
Return oWsh.Range(sCol & startRow.ToString).End(-4121).Row
End Function
Usage:
Sub Adsasada()
MsgBox FirstEmptyRow(oWb.Worksheets("blad1"), "A", 1)
End Sub
It works fine, if you got some data... but if you don't, function returns last row, so... you need something like this:
Function FirstEmptyRow(oWsh As Object, sCol As String) As Long
Return oWsh.Range(sCol & oWsh.Rows.Count).End(-4162).Row +1
End Function
No matter of rows count in a worksheet (MS97-2003 -> 65536 rows, 2007-2010 - much more ;)), function will return proper value