Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Dynamic Creation of Arrays - Sorting into Bins problem
Hi
In my vba code, I have an array of "structures", where the structure has several fields including a User Name and other parameters. The list is effectively unsorted as it has been created by reading a file that contains entries in chronological order. So far so good. What I now want to do is to go through this array and produce a set of new arrays, one per individual User Name, which each contain entries from the original array that are specific to that UserName. I also want to maintain a further array which keeps track of all of the User specific arrays I have created. This is a classic issue of processing a list into bins, dynamically creating and reallocating the result bins as each item in the original list is processed. I would have no problem implementing this in C,C++, or Java, but I am unsure as to how to create an array from thin air at run time in VBA. I do not want to use magic numbers to create a "large enough" array, as I would like this solution to be scalable. Can anyone either describe how to create arrays completely dynamically in vba, or point me at code which handles the sorting into bins problem. Thanks Chris |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Dynamic Creation of Arrays - Sorting into Bins problem
A very good place to start are these 3 subject areas in Excel VBA help...
Using Arrays Declaring Arrays Understanding Parameter Arrays '--- Sub Demo() Dim aThinAir() As String Dim x As Long Dim y As Long Dim z As Long x = 10: y = 5: z = 5 ReDim aThinAir(1 To x, 1 To y, 1 To z) aThinAir(1, 2, 3) = "sludge" MsgBox aThinAir(1, 2, 3) End Sub '--- Jim Cone Portland, Oregon USA . http://www.mediafire.com/PrimitiveSoftware . (free and commercial excel programs) "Chris Flockhart" wrote in message ... Hi In my vba code, I have an array of "structures", where the structure has several fields including a User Name and other parameters. The list is effectively unsorted as it has been created by reading a file that contains entries in chronological order. So far so good. What I now want to do is to go through this array and produce a set of new arrays, one per individual User Name, which each contain entries from the original array that are specific to that UserName. I also want to maintain a further array which keeps track of all of the User specific arrays I have created. This is a classic issue of processing a list into bins, dynamically creating and reallocating the result bins as each item in the original list is processed. I would have no problem implementing this in C,C++, or Java, but I am unsure as to how to create an array from thin air at run time in VBA. I do not want to use magic numbers to create a "large enough" array, as I would like this solution to be scalable. Can anyone either describe how to create arrays completely dynamically in vba, or point me at code which handles the sorting into bins problem. Thanks Chris |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Dynamic Creation of Arrays - Sorting into Bins problem
on 8/11/2011, Chris Flockhart supposed :
Hi In my vba code, I have an array of "structures", where the structure has several fields including a User Name and other parameters. The list is effectively unsorted as it has been created by reading a file that contains entries in chronological order. So far so good. What I now want to do is to go through this array and produce a set of new arrays, one per individual User Name, which each contain entries from the original array that are specific to that UserName. I also want to maintain a further array which keeps track of all of the User specific arrays I have created. This is a classic issue of processing a list into bins, dynamically creating and reallocating the result bins as each item in the original list is processed. I would have no problem implementing this in C,C++, or Java, but I am unsure as to how to create an array from thin air at run time in VBA. I do not want to use magic numbers to create a "large enough" array, as I would like this solution to be scalable. Can anyone either describe how to create arrays completely dynamically in vba, or point me at code which handles the sorting into bins problem. Thanks Chris Jim's suggestion is indeed a good place to start! Typically, I dump the file contents into a Variant (causing a dynamic array) using the Split() function and specifying vbCrLf as the delimiter. My files include headings (field names) in the first line, but this is not necessary if, as you say, the data is structured. Each line of the file contains a 'record' where each field of data is delimited by a comma (or some other character). Looping the dynamic array lets me Split() each element into a temp array to process it however I need. Perhaps this approach might work for you. -- Garry Free usenet access at http://www.eternal-september.org ClassicVB Users Regroup! comp.lang.basic.visual.misc |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Dynamic Formula Creation?? | Excel Discussion (Misc queries) | |||
Dynamic button creation | Excel Programming | |||
Commandbars dynamic menu creation problem | Excel Programming | |||
ASP Dynamic Excel Creation | Excel Programming | |||
Dynamic Creation of borders | Excel Programming |