If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > PC based Database Applications > Microsoft Excel > Excel VBA Function...Can someone explain this function to me?

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 10-21-09, 00:02
danyochou danyochou is offline
Registered User
 
Join Date: Oct 2009
Posts: 1
Excel VBA Function...Can someone explain this function to me?

Hello,
I am taking a class...and I am having trouble on explaining this function. Can someone briefly explain what this function does? I believe you might have to assume some functions exist.

Sub My_test(My_line, ByVal Low As Long, ByVal Hi As Long, SortCol As Integer)
Dim MidValue, i As Long, j As Long, k As Long, Temp
If Hi <= Low Then Exit Sub
MidValue = My_line(SortCol, (Low + Hi) \ 2)
i = Low
j = Hi
Do While i <= j
If CSng(My_line(SortCol, i)) >= CSng(MidValue) And
CSng(My_line(SortCol, j)) <= CSng(MidValue) Then
If CSng(My_line(SortCol, i)) > CSng(My_line(SortCol, j)) Then
k = 1
For k = 1 To UBound(My_line, 1)
Temp = My_line(k, i)
My_line(k, i) = My_line(k, j)
My_line(k, j) = Temp
Next k
End If
i = i + 1
j = j - 1
Else
If CSng(My_line(SortCol, i)) < CSng(MidValue) Then i = i +
1
If CSng(My_line(SortCol, j)) > CSng(MidValue) Then j = j -
1
End If
Loop
My_test My_line, Low, j, SortCol
My_test My_line, i, Hi, SortCol
End Sub
Reply With Quote
  #2 (permalink)  
Old 10-21-09, 03:12
pootle flump pootle flump is offline
King of Understatement
 
Join Date: Feb 2004
Location: One Flump in One Place
Posts: 14,905
Hi

Please could you wrap this code up in code tags? [ code] [/ code] without the spaces. This should also be indented correctly. It is very difficult to read code in variable width fonts without indents.

Also, since this is a class - we would expect you to at least have a go at explaining what you think this code is doing.
__________________
Testimonial:
Quote:
pootle flump
ur codings are working excelent.
Reply With Quote
  #3 (permalink)  
Old 10-21-09, 03:37
MikeTheBike MikeTheBike is offline
Registered User
 
Join Date: Apr 2004
Location: Derbyshire, UK
Posts: 714
Quote:
Originally Posted by danyochou
Hello,
I am taking a class...and I am having trouble on explaining this function. Can someone briefly explain what this function does? I believe you might have to assume some functions exist.

Sub My_test(My_line, ByVal Low As Long, ByVal Hi As Long, SortCol As Integer)
Dim MidValue, i As Long, j As Long, k As Long, Temp
If Hi <= Low Then Exit Sub
MidValue = My_line(SortCol, (Low + Hi) \ 2)
i = Low
j = Hi
Do While i <= j
If CSng(My_line(SortCol, i)) >= CSng(MidValue) And
CSng(My_line(SortCol, j)) <= CSng(MidValue) Then
If CSng(My_line(SortCol, i)) > CSng(My_line(SortCol, j)) Then
k = 1
For k = 1 To UBound(My_line, 1)
Temp = My_line(k, i)
My_line(k, i) = My_line(k, j)
My_line(k, j) = Temp
Next k
End If
i = i + 1
j = j - 1
Else
If CSng(My_line(SortCol, i)) < CSng(MidValue) Then i = i +
1
If CSng(My_line(SortCol, j)) > CSng(MidValue) Then j = j -
1
End If
Loop
My_test My_line, Low, j, SortCol
My_test My_line, i, Hi, SortCol
End Sub
Hi

Without spending too much time on it, it seems to be a recursive routine for sorting an element of a two dimensional array (some kind of bubble sort).

To run the procedure it is called something like this
Code:
Sub Test()
    Dim ML(1 To 6, 2 To 7)
    
    My_test ML, LBound(ML, 2), UBound(ML, 2), 3
    
End Sub
This of course does not have any data to sort. I assume the array would be populated with data from a range in a worksheet (and then rewritten out again after sorting?).

If you need anything more specific, then will need to investigate further.

HTH


MTB
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On