The company I'm doing this project for is a healthcare company, so I'm under an NDA and wouldn't want to post too much of the code (the one below is fine, because SBU is a term used by everyone). When I get back to work, I can post more code (after masking variables, etc), but is this sufficient?
Sheets(SBUarraySheet).Select y = xlLastRow ' y = numbers of rows x = xlLastCol ' x = number of cols Dim SBU() As Variant SBU = Range(Cells(2, 2), Cells(y, x)).Value then later on, the SBU variable is references in a loop which goes to certain tabs (and does a certain filter), based on the contents of the SBU array variable. On Jun 4, 11:42 am, Paul Schreiner <schreiner_p...@att.net> wrote: > if you'll show me the code you're using, > I'll rewrite it to access the cells directly. > > Paul > > ________________________________ > From: molinari <dh0...@gmail.com> > To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com> > Sent: Fri, June 4, 2010 11:26:38 AM > Subject: Re: $$Excel-Macros$$ reading excel worksheet into an array? > > Well., I don't expect the array to ever reach even hundreds of rows or > columns. Right now, the largest array has 4 columns and 8 rows. I > don't expect it to get much larger. > > How would I do it by processing the range values directly? > > The reason I liked the method I'm using is because the code is very > simple. > > On Jun 3, 1:49 pm, Paul Schreiner <schreiner_p...@att.net> wrote: > > > > > It's really going to depend on what you're doing. > > > Initially, it seems that you're wasting effort. > > > You're: > > 1) defining a range, > > 2) copying the range values into an array, > > 3) processing the array. > > why not simply process the range values? > > > at the same time, it may require more cpu cycles to compare a range().value > > to some value > > than it does to compare an array element sbu(x) = ?? . > > so, looping through tens of thousands of records MIGHT be CPU - time > > consuming. > > > I may play with it and see what I can determine. > > > thanks for the puzzle!!! > > > Paul > > > ________________________________ > > From: molinari <dh0...@gmail.com> > > To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com> > > Sent: Thu, June 3, 2010 12:07:32 PM > > Subject: Re: $$Excel-Macros$$ reading excel worksheet into an array? > > > Thanks. All that I'm using the array for is to go through a loop, and > > for each value in the array, to do particular things to particular > > tabs (which are determined solely by the array values). I found out > > what was causing me problems: my xlLastCol function was not working, > > and returning a last column of "0". Hence, the array was running into > > out of range problems. > > > After fixing the xlLastCol function, what I did was this: > > > Sheets(SBUarraySheet).Select > > y = xlLastRow ' y = numbers of rows > > x = xlLastCol ' x = number of cols > > > Dim SBU() As Variant > > SBU = Range(Cells(2, 2), Cells(y, x)).Value > > > This works, but sets the array base to 1 (I put Option Base 1 at the > > beginning of the module just to remind myself of that). It seems > > really simple, easy to follow, and nice. I tested it with my macro, > > and it works perfeclty (tested the values using Msg, then ran the > > macro, and it worked just the same as the array specified manually in > > the VBA code). > > >http://www.codeforexcelandoutlook.com/blog/2008/09/reading-worksheet-... > > > Any reason not to use that method? > > > On Jun 3, 10:17 am, Paul Schreiner <schreiner_p...@att.net> wrote: > > > > in order to give you a recommendation that has any value, > > > I need to know what you plan to do with the array. > > > > Your example indicates that you want to create an array > > > and populate it with the contents? of a range consisting of all cells > > > with values. > > > Of course, when more data is added, the array size changes... > > > > ok, that's possible, but not the way you want it to. > > > > the way you change an array size is using ReDim: > > > '------------------------------------------------------------------------- > > > Option Explicit > > > Dim ClaimProvider() > > > Sub ResizeArray() > > > Dim rCnt, cCnt > > > Dim R, C > > > ReDim ClaimProvider(1, 1) > > > Sheets("Data").Select > > > rCnt = ActiveCell.SpecialCells(xlLastCell).Row > > > cCnt = ActiveCell.SpecialCells(xlLastCell).Column > > > > > > ReDim ClaimProvider(rCnt, cCnt) > > > For R = 2 To rCnt > > > If (R Mod 100 = 0) Then Application.StatusBar = "Loaded " & R & " > > > of " & rCnt > > > For C = 1 To cCnt > > > ClaimProvider(R, C) = Sheets("Data").Cells(R, C).Value > > > Next C > > > Next R > > > Application.StatusBar = False > > > MsgBox R & " rows loaded" > > > End Sub > > > '------------------------------------------------------------------------- > > > Now, if what you're really trying to do is to define a dynamic RANGE, > > > then use: > > > '------------------------------------------------------------------------- > > > Option Explicit > > > Sub DefineRange() > > > Dim rCnt, cCnt, ClaimProviderRange As Range > > > Sheets("Data").Select > > > rCnt = ActiveCell.SpecialCells(xlLastCell).Row > > > cCnt = ActiveCell.SpecialCells(xlLastCell).Column > > > > > > Set ClaimProviderRange = Sheets("Data").Range(Cells(1, 1), > > > Cells(rCnt, cCnt)) > > > MsgBox ClaimProviderRange.Rows.Count > > > End Sub > > > '------------------------------------------------------------------------- > > > In this case, the variable ClaimProviderRange works the same as any Range > > > object. > > > > ClaimProviderRange(1,5).value gives you the value of cell E1 > > > > what you're DOING with the array or range will determine the best method > > > for defining it. > > > > hope this helps. > > > > Paul > > > > > > > > ________________________________ > > > From: molinari <dh0...@gmail.com> > > > To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com> > > > Sent: Wed, June 2, 2010 3:59:56 PM > > > Subject: $$Excel-Macros$$ reading excel worksheet into an array? > > > > Hi all, I want to create an array in VBA such that typical end-users > > > can modify what goes into the array without knowing code (or looking > > > at it). Hence, I want the array to read the contents of a worksheet, > > > excluding the first column and first row (which are labels). > > > > i.e., I want to read the following into the array, but not including > > > the first row or the first column > > > # ; Tab (0) ; Code (1); Chart (2) > > > 0 ; Tab1 ; A ; "A Chart" > > > 1 ; Tab2 ; P ; "P Chart" > > > > and the # of rows and columns may increase, as we get more > > > categories. > > > > How can I accomplish this? > > > > I've tried the following, but run into errors: > > > > Sheets("My Sheet").Select > > > Dim y As Variant > > > Dim x As Variant > > > y = xlLastRow > > > x = xlLastCol > > > Dim ClaimProvider() As Variant > > > ClaimProvider = Range(Cells(2, 2), Cells(y, x)) > > > > This isn't working, and gives me errors. (xlLastRow and xlLastCol are > > > custom functions that find the last row and last column on a worksheet) > > > > -- > > > ---------------------------------------------------------------------------------- > > > Some important links for excel users: > > > 1. Follow us on TWITTER for tips tricks and links > > > :http://twitter.com/exceldailytip > > > 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310 > > > 3. Excel tutorials athttp://www.excel-macros.blogspot.com > > > 4. Learn VBA Macros athttp://www.quickvba.blogspot.com > > > 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com > > > > To post to this group, send email to excel-macros@googlegroups.com > > > > <><><><><><><><><><><><><><><><><><><><><><> > > > HELP US GROW !! > > > > We reach over 7000 subscribers worldwide and receive many nice notes > > > about the learning and support from the group.Let friends and co-workers > > > know they can subscribe to group > > > athttp://groups.google.com/group/excel-macros/subscribe > > > -- > > ---------------------------------------------------------------------------------- > > Some important links for excel users: > > 1. Follow us on TWITTER for tips tricks and links > > :http://twitter.com/exceldailytip > > 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310 > > 3. Excel tutorials athttp://www.excel-macros.blogspot.com > > 4. Learn VBA Macros athttp://www.quickvba.blogspot.com > > 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com > > > To post to this group, send email to excel-macros@googlegroups.com > > > <><><><><><><><><><><><><><><><><><><><><><> > > HELP US GROW !! > > > We reach over 7000 subscribers worldwide and receive many nice notes about > > the learning and support from the group.Let friends and co-workers know > > they can subscribe to group > > athttp://groups.google.com/group/excel-macros/subscribe-Hide quoted text - > > > - Show quoted text - > > -- > ---------------------------------------------------------------------------------- > Some important links for excel users: > 1. Follow us on TWITTER for tips tricks and links > :http://twitter.com/exceldailytip > 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310 > 3. Excel tutorials athttp://www.excel-macros.blogspot.com > 4. Learn VBA Macros athttp://www.quickvba.blogspot.com > 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com > > To post to this group, send email to excel-macros@googlegroups.com > > <><><><><><><><><><><><><><><><><><><><><><> > HELP US GROW !! > > We reach over 7000 subscribers worldwide and receive many nice notes about > the learning and support from the group.Let friends and co-workers know they > can subscribe to group athttp://groups.google.com/group/excel-macros/subscribe -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 7000 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe