Search code examples
visual-studioexcelvstooutlook-addinvba

vsto - VB - find last cell from column in outlook addin


How do you search for the last empty cell in an excel sheet from a vsto outlook addin?

I have the following code (not compiling)

Imports Excel = Microsoft.Office.Interop.Excel
Dim ExcelApp As New Excel.Application
Dim ExcelWorkbook As Excel.Workbook
Dim ExcelWorkSheet As Excel.Worksheet= ExcelWorkbook.Worksheets(1)
Dim ExcelRange As Excel.Range = ExcelWorkSheet.Range("A1","A600")

Dim currentFind As Excel.Range = Nothing
Dim firstFind As Excel.Range = Nothing

currentFind = ExcelRange.Find("*", , Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)

            While Not currentFind Is Nothing

                ' Keep track of the first range you find.
                If firstFind Is Nothing Then
                    firstFind = currentFind

                    ' If you didn't move to a new range, you are done.
                ElseIf currentFind.Address = firstFind.Address Then
                    Exit While
                End If

                currentFind = ExcelRange.FindNext(currentFind)
            End While

ExcelWorkbook.ActiveSheet.range(currentFind).Select()

I have updated it according to Scott Holtzman's comments but now I get an error message: HRESULT: 0x800A03EC


Solution

  • SOLVED: I have the following code (now compiling!)

    Imports Excel = Microsoft.Office.Interop.Excel
    Dim ExcelApp As New Excel.Application
    Dim ExcelWorkbook As Excel.Workbook
    Dim ExcelWorkSheet As Excel.Worksheet= ExcelWorkbook.Worksheets(1)
    
    Dim LastRow As Integer
    
    LastRow = ExcelWorkSheet.Columns(1).Find("*", , , , Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlPrevious).Row
    
    ExcelWorkSheet.Range("A" & LastRow).Select()
    

    My error was in the actual property library choice. Beware to choose: XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlPrevious