This works a lot faster, but doesn't explain why the worksheet object was so slow. :confused:
Public Sub New(ByVal oExcel As WorkBookSelection.ExcelWorkBook)
Dim myWorksheet As Excel.Worksheet = oExcel.WorkSheets(oExcel.LookUpSheet)
Dim IntRow As Integer
Dim IntColumn As Integer
Dim oFirstCell As Excel.Range = myWorksheet.Range("A2")
Dim oLastCell As Excel.Range = myWorksheet.Range("A1").End(Excel.XlDirection.xlDown)
oLastCell = myWorksheet.Cells(oLastCell.Row, LookUpColumn.MaxColumn)
Dim myRange As Excel.Range = myWorksheet.Range(oFirstCell, oLastCell)
Dim Values As System.Array = myRange.FormulaR1C1
Dim DataProperties(LookUpColumn.MaxColumn) As String
For IntRow = 1 To Values.GetUpperBound(0)
For IntColumn = 1 To Values.GetUpperBound(1)
DataProperties(IntColumn) = CType(Values.GetValue(IntRow, IntColumn), String)
Next
DataCollection.Add(key:=AttributeProperties(LookUpColumn.DataName), item:=AttributeProperties)
Next
End Sub