Re: Sorting a variant array



Hi George,

tempList = Range(ThisWorkbook.Names.Item(rangeName).RefersTo)
(which btw you could write as
tempList = ThisWorkbook.Range(rangeName).Value
assuming you really do mean ThisWorkbook and not ActiveWorkbook (if not
same) and assuming rangeName refers to a range, etc

Anyway, the point is tempList will become a 2D array, even if its one column
or one row. That means when you want to refer to it elements you will need
to do
tempList(i, 1) ' cells down column 1
tempList (1, i) ' cells accross row 1

I don't follow why you need to convert to strings.

Regards,
Peter T


"George" <George@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:88FFA71A-EDA6-4786-BA95-345A69AAEFDA@xxxxxxxxxxxxxxxx
Having a problem sorting my variant array which I'm hoping someone will be
able to assist me with. I'm positive it's something I'm doing as the
sorting
algorithim I'm using works in all the examples supplied with the routine -
it's the one from MS :-)

The complete code I've got at the moment (including my pathetic attempts
at
Debug.Print to find out why it's not working is below):

Dim tempList() As Variant
Dim testerList() As String

Function sortTesters(rangeName As String)
Application.Volatile

' check if the input name exists
If nameExists(rangeName) Then
' retrieve the named range
'Set namedRange = ThisWorkbook.Names.Item(rangeName)
' read the named range into an array
tempList = Range(ThisWorkbook.Names.Item(rangeName).RefersTo)
Debug.Print UBound(tempList)

For Each tester In tempList
Debug.Print tester ' ***1***
Next

Dim i As Integer
For i = LBound(tempList) To UBound(tempList)
testerList(i) = tempList(i)
Debug.Print testerList(i) ' ***2***
Next i

'Call BubbleSort(testerList)
End If
End Function

I've commented out the BubbleSort call at the moment because I can't even
move the Variant array into a String array which is what I thought might
be
causing the problem. The ***1*** debug line prints out all the staff one
by
one in the same order that's in the Range. This works fine, however when I
try and move them (one by one) to a string array I get no debug output and
(i
presume) the routine falls over and exits.

Even if I don't try the movement to a String Array the sorting algorithm
doesn't do anything with the variant array. If I put a debug line in the
sorting algorithm to output the number of items in the passed array it
gives
me the correct reading but as soon as it tries to "do something" with any
value in the array it must bomb out - there's no further debug output and
no
error message.

I'm at a bit of a loss as to what is happening here - the sorting code is
fine (as I say trying it with the examples supplied gives me correct
output)
so it must be something stupid that I've done.

Any pointers gratefully taken :-)
George


.



Relevant Pages

  • Re: NameValueCollections GetValues does not return multiple entries
    ... > then GetValuesreturns an array that contains only the first value ... > "Matt Berther" wrote in message ... >>> associated with a single key, I only get the last value. ... >>> string array, but only with a single value. ...
    (microsoft.public.dotnet.framework)
  • Re: NameValueCollections GetValues does not return multiple entries
    ... > Hello Vagif, ... > The NameValueCollection returns a string array based on a string split on ... >> And the whole purpose og GetValues is to retrieve multiple values, ... >> string array, but only with a single value. ...
    (microsoft.public.dotnet.framework)
  • Re: fixed or dynamic array
    ... Split to a pre dimensioned variant array fails, ... ReDim vas Variant ... If you had instead used Dim arrStr then the Split function would have failed, because arrStr would be a static array and the Split function needs a dynamic array. ... The Split function needs either a dynamic array into which it will place its output or a normal Variant into which it will place a string array containing its output. ...
    (microsoft.public.vb.general.discussion)
  • Re: a string, a string array and character array
    ... as a "character array", the term used in the rest of Matlab. ... You might be confused by references to a "cell string array" or a "cell array ...
    (comp.soft-sys.matlab)
  • Re: uniqness in array
    ... >> After you have fixed the sorting algorithm, you will find that even the ... >> connection between model number and total rental time is broken. ... >> An array of these structures can then be sorted on the field TotalTime. ... you use the array cars to search for it: ...
    (alt.comp.lang.learn.c-cpp)