View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Alan Beban[_2_] Alan Beban[_2_] is offline
external usenet poster
 
Posts: 783
Default Specifying a range within an array

Well, I suppose it's fair to say that some might think

For i = startRow to endRow:For j = startColumn to endColumn
RangeOfCells(i, j) = myArray(i, j)
Next:Next

is simpler and more direct. For someone like me, who always has the
downloaded functions available, perhaps not.

Alan Beban

Bob wrote:
Alan,
As always, thanks!
I will definitely take a closer look at your SubArray function. In
hindsight, if there was a simpler or more direct way to address a range
within an array, you wouldn't have needed to write a UDF. Silly me.
Thanks again,
Bob


"Alan Beban" wrote:


For a "range of cells", as you call it, in e.g., myArray

For i = startRow to endRow:For j = startColumn to endColumn
RangeOfCells(i, j) = myArray(i, j)
Next:Next

Using the downloaded functions it's implicit in the response below
(i.e., SubArray(HoursArray,1,14,1,1)). Review the description of the
downloaded SubArray function.

SubArray(myArray, startColumn, endColumn, startRow, endRow)

to return a 1-based "range of cells" (i.e., subarray).

The built-in COUNTIF function doesn't operate on VBA arrays, hence the
use of the downloaded ArrayCountIf function below.

Alan Beban