View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Array Join & Filter funcs

a single row will never exceed 256, so no problem with that. A single
column must be less than or equal to 5461 cells for this to work:

Sub tester9()
Dim varrHoriz
Dim varrVert
On Error Resume Next
varrHoriz = Application.Transpose(Application.Transpose(Range( "A1:F1")))
Debug.Print UBound(varrHoriz, 1)
Debug.Print UBound(varrHoriz, 2)
varrVert = Application.Transpose(Range("A1:A10"))
Debug.Print UBound(varrVert, 1)
Debug.Print UBound(varrVert, 2)

End Sub

This will produce a 1D array for a single row, or single column range

--
Regards,
Tom Ogivy

"Kevin T. Ryan" wrote in message
...
Hi All -

Quick question. I am trying to use VBA's "filter" & "join" functions. I

am
able to use the functions ok, but the problem is this: I am trying to

load
an array via the

variable_name = ActiveWindow.RangeSelection.Value

method. But this gives me a multi-dimensional array, and the filter and
join functions need a one-dimensional array. Is there a way to extract
*only* one dimension from a multi-dimensional array? I've tried

ReDim Preserve variable_name(UBOUND(variable_name))

but I get an error trying to do this. I know I can create another
temp_array(ubound(variable_name)), and then iterate through each item in
variable_name and assign to temp_array, but I'm wondering if there is a

more
elegant/faster solution? Or, is there another quick way to load an entire
range, but only get one-dimensional array?

Thanks for your help!!

Kevin