ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   RE-Post Max Function not working properly on 2D Array (https://www.excelbanter.com/excel-programming/402655-re-post-max-function-not-working-properly-2d-array.html)

ExcelMonkey

RE-Post Max Function not working properly on 2D Array
 
I have a 2D array which I set up as a 2 columns and X Rows. I transpose it
to be X Rows by 2 Columns. I then test the max of the array and get an odd
result. The code is quite extensive but here is the just.

I set a break point and I print the transposed array contents to the
Immediate window in the first loop I get the following using the code below:
For X = 0 To UBound(NumberSetArray, 1)
Debug.Print NumberSetArray(X, 0) & ","; NumberSetArray(X, 1)
Next

I get the following in the Immediate Window:
7, 49

Immediately after printing tot the Immediate Window, I test for a max value
in the Immediate window using:
?Application.WorksheetFunction.Max(Application.Ind ex(NumberSetArray, , 1))
I get a value of 0.

Shouldn't the result be 7?

Whe I do the same test on the second column of the array I get:
?Application.WorksheetFunction.Max(Application.Ind ex(NumberSetArray, , 2))
52

Which I know to be correct.

Have I set the Index up incorrectly when attempting to apply the min
function to the first column

Thanks

EM

sebastienm

RE-Post Max Function not working properly on 2D Array
 
Hi,

1. I would make sure the array returned by INDEX is correct:
Dim v
v= Application.WorksheetFunction.Index(s, , 1)
then print each element.
Same with Index(s, , 2)

2. If your 2d array correspond to a range, you can use the
Appplication.Evaluate function to get what you need, Eg:
Application.Evaluate("=max(INDEX(G3:H6,,1))")

--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"ExcelMonkey" wrote:

I have a 2D array which I set up as a 2 columns and X Rows. I transpose it
to be X Rows by 2 Columns. I then test the max of the array and get an odd
result. The code is quite extensive but here is the just.

I set a break point and I print the transposed array contents to the
Immediate window in the first loop I get the following using the code below:
For X = 0 To UBound(NumberSetArray, 1)
Debug.Print NumberSetArray(X, 0) & ","; NumberSetArray(X, 1)
Next

I get the following in the Immediate Window:
7, 49

Immediately after printing tot the Immediate Window, I test for a max value
in the Immediate window using:
?Application.WorksheetFunction.Max(Application.Ind ex(NumberSetArray, , 1))
I get a value of 0.

Shouldn't the result be 7?

Whe I do the same test on the second column of the array I get:
?Application.WorksheetFunction.Max(Application.Ind ex(NumberSetArray, , 2))
52

Which I know to be correct.

Have I set the Index up incorrectly when attempting to apply the min
function to the first column

Thanks

EM



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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com