Solved

MS Excel - working with Arrays and looping through code

Posted on 2006-07-18
4
181 Views
Last Modified: 2010-04-30
I am trying to create an array from two values. For example, lets say cell A1 = 5 and B1 = 7. I want code that examines the two values, identifies the smallest, creates an array that counts from the smallest down to 0, while increasing the largest at the same time:

5   7
4   8
3   9
2   10
1   11
0   12

My code is not working, and I am coming up with some funny values. What am I doing wrong?  Here is my code:

Function createArray(cellA, cellB)

Dim MPos1, getMin, myNewArray(100, 2), rw, prw
Dim myArray(100, 2)

    If cellA <= cellB Then
        MPos1 = 1
        getMin = cellA
    Else
        MPos1 = 2
        getMin = cellB
    End If
   
myNewArray(0, 1) = cellA
myNewArray(0, 2) = cellB

For rw = 1 To getMin

    prw = rw - 1

    If MPos1 = 1 Then myNewArray(rw, 1) = myNewArray(prw, 1) - 1 Else myNewArray(rw, 1) = myNewArray(prw, 1) + 1
    If MPos1 = 1 Then myNewArray(rw, 2) = myNewArray(prw, 1) + 1 Else myNewArray(rw, 1) = myNewArray(prw, 2) - 1
    rw = rw + 1
   
Next

createArray = myNewArray(rw - 1, 2)


End Function
0
Comment
Question by:smehle
  • 2
4 Comments
 
LVL 92

Accepted Solution

by:
Patrick Matthews earned 250 total points
ID: 17135286
Hi smehle,

Function createArray(cellA As Long, cellB As Long)

    Dim myArray() As Long
    Dim First As Long
    Dim Second As Long
    Dim Counter As Long

    If cellA <= cellB Then
        First = cellA
        Second = cellB
    Else
        First = cellB
        Second = cellA
    End If

    ReDim myArray(0 To First, 0 To 1) As Long

    For Counter = 0 To UBound(myArray, 1)
        myArray(Counter, 0) = First - Counter
        myArray(Counter, 1) = Second + Counter
    Next

    createArray = myArray

End Function

Regards,

Patrick
0
 
LVL 9

Expert Comment

by:Naveen Swamy
ID: 17136333
0
 

Author Comment

by:smehle
ID: 17138162
Thank you both, this was driving me NUTS!
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 17138247
You're welcome :)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now