Okay, I am 50% toward having this figured out, but there are a couple of concepts that are new to me here and it is throwing me for a loop.

I am reading an Excel file into VB.NET. There are 4 columns containing dollar figures of varying amounts. Here is what I need to do is identify the columns with the highest $ figure, the next highest, etc. and mark them so that .NET can identify them (e.g. col3 is highest so rank1 variable is "col3" and so on).

So I am dealing with Excel Ojects which is new to me and sorting which is new to me. If it helps, here is how I am reading in the Excel file:

    xlsWorkBook = xlsApp.Workbooks.Open(folders(f).ToString & "\" & fileInFolder.ToString)
    xlsWorkSheet = xlsWorkBook.Worksheets("Sheet1")
    Dim ColumnNumber As Integer = xlsWorkSheet.Cells(1, StartColumn).Column

    For r = 6 To xlsWorkSheet.Range(StartColumn & "65536").End(xlUp).Row
    'Need sorting here
    Next

Need to sort it in the code and pass the value in that field along with the column number.

Okay, I fought through a good amount of this and have gotten to the point where I can sort things. What I need to do now is take the following code and sort the elements in descending order. I don't know how to do that with the two arguments in the code:

Dim Cols(3) As Int16
Cols(0) = ColumnNumber + 1
Cols(1) = ColumnNumber + 2
Cols(2) = ColumnNumber + 3
Cols(3) = ColumnNumber + 4

Dim Vals(3) As Double
Vals(0) = xlsWorkSheet.Cells(r, ColumnNumber + 1).value
Vals(1) = xlsWorkSheet.Cells(r, ColumnNumber + 2).value
Vals(2) = xlsWorkSheet.Cells(r, ColumnNumber + 3).value
Vals(3) = xlsWorkSheet.Cells(r, ColumnNumber + 4).value

Array.Sort(Vals, Cols)
This article has been dead for over six months. Start a new discussion instead.