Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 140
Default Decrease an array?

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Decrease an array?

Sub TestArrays()
Dim iDiceRoll As Variant
Dim i As Integer
Randomize
ReDim iDiceRoll(0 To 5)
For i = 0 To 5
iDiceRoll(i) = Int((6 * Rnd) + 1)
Next i
iDiceRoll = Application.Large(iDiceRoll, Array(1, 2, 3))
For i = LBound(iDiceRoll) To UBound(iDiceRoll)
Debug.Print i, iDiceRoll(i)
Next
End Sub

iDiceRoll will have a lower bound of 1 after the use of Large.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 140
Default Decrease an array?

Thanks Tom
Works a charm
Any chance on an explanation on the code

Steve

"Tom Ogilvy" wrote:

Sub TestArrays()
Dim iDiceRoll As Variant
Dim i As Integer
Randomize
ReDim iDiceRoll(0 To 5)
For i = 0 To 5
iDiceRoll(i) = Int((6 * Rnd) + 1)
Next i
iDiceRoll = Application.Large(iDiceRoll, Array(1, 2, 3))
For i = LBound(iDiceRoll) To UBound(iDiceRoll)
Debug.Print i, iDiceRoll(i)
Next
End Sub

iDiceRoll will have a lower bound of 1 after the use of Large.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Decrease an array?

I gave you a nice long detailed explanation, but when I hit post, this great
communities web page said page not available and it was all lost. I am not
up for reentering it. So here is the abbreviated

put this in a cell

=LARGE({2,4,6,8,10,12},{1,2,3})

after entering, go to the formula bar and select the formula. Hit F9 to
evaluate it.

You will see what it returns.

hit escape to restore the formula.

See help on the Large Worksheet function in Excel.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Thanks Tom
Works a charm
Any chance on an explanation on the code

Steve

"Tom Ogilvy" wrote:

Sub TestArrays()
Dim iDiceRoll As Variant
Dim i As Integer
Randomize
ReDim iDiceRoll(0 To 5)
For i = 0 To 5
iDiceRoll(i) = Int((6 * Rnd) + 1)
Next i
iDiceRoll = Application.Large(iDiceRoll, Array(1, 2, 3))
For i = LBound(iDiceRoll) To UBound(iDiceRoll)
Debug.Print i, iDiceRoll(i)
Next
End Sub

iDiceRoll will have a lower bound of 1 after the use of Large.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 140
Default Decrease an array?

thanks again Tom

"Tom Ogilvy" wrote:

I gave you a nice long detailed explanation, but when I hit post, this great
communities web page said page not available and it was all lost. I am not
up for reentering it. So here is the abbreviated

put this in a cell

=LARGE({2,4,6,8,10,12},{1,2,3})

after entering, go to the formula bar and select the formula. Hit F9 to
evaluate it.

You will see what it returns.

hit escape to restore the formula.

See help on the Large Worksheet function in Excel.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Thanks Tom
Works a charm
Any chance on an explanation on the code

Steve

"Tom Ogilvy" wrote:

Sub TestArrays()
Dim iDiceRoll As Variant
Dim i As Integer
Randomize
ReDim iDiceRoll(0 To 5)
For i = 0 To 5
iDiceRoll(i) = Int((6 * Rnd) + 1)
Next i
iDiceRoll = Application.Large(iDiceRoll, Array(1, 2, 3))
For i = LBound(iDiceRoll) To UBound(iDiceRoll)
Debug.Print i, iDiceRoll(i)
Next
End Sub

iDiceRoll will have a lower bound of 1 after the use of Large.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Decrease an array?

Just to add to Tom's abbreviated notes.

Instead of putting that formula in one cell, select a1:C1 and enter the formula
in A1, but hit ctrl-shift-enter to see what's returned in all three cells.



Tom Ogilvy wrote:

I gave you a nice long detailed explanation, but when I hit post, this great
communities web page said page not available and it was all lost. I am not
up for reentering it. So here is the abbreviated

put this in a cell

=LARGE({2,4,6,8,10,12},{1,2,3})

after entering, go to the formula bar and select the formula. Hit F9 to
evaluate it.

You will see what it returns.

hit escape to restore the formula.

See help on the Large Worksheet function in Excel.

--
Regards,
Tom Ogilvy

"steve_doc" wrote:

Thanks Tom
Works a charm
Any chance on an explanation on the code

Steve

"Tom Ogilvy" wrote:

Sub TestArrays()
Dim iDiceRoll As Variant
Dim i As Integer
Randomize
ReDim iDiceRoll(0 To 5)
For i = 0 To 5
iDiceRoll(i) = Int((6 * Rnd) + 1)
Next i
iDiceRoll = Application.Large(iDiceRoll, Array(1, 2, 3))
For i = LBound(iDiceRoll) To UBound(iDiceRoll)
Debug.Print i, iDiceRoll(i)
Next
End Sub

iDiceRoll will have a lower bound of 1 after the use of Large.

--
Regards,
Tom Ogilvy


"steve_doc" wrote:

Hi all

Is it possible to decrease an array?

EG with the following Code. If I wanted to be left with the 3 highest number
in that array. I could add them to a Collection and remove them based on a
logic comparison, as 1 option. What are the other options, and are there
better watys of doing this?

Sub TestArrays()
Dim iDiceRoll(5) As Integer
Dim i As Integer

For i = 0 To 5
iDiceRoll(i) = ((6 * Rnd) + 1)
Next i
End Sub


Thanks in advance
Steve


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
decrease integers to zero Andi Excel Worksheet Functions 7 May 9th 09 02:35 AM
decrease formula bar reginaj Excel Discussion (Misc queries) 2 December 8th 08 04:14 PM
How do I decrease the gap width of the Up/down bar? Xcel08 Excel Discussion (Misc queries) 3 April 20th 08 09:28 PM
% of increase or decrease Neil R Excel Discussion (Misc queries) 9 November 27th 05 03:13 AM
Automatic % decrease tdw Excel Discussion (Misc queries) 1 May 26th 05 11:23 AM


All times are GMT +1. The time now is 10:46 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"