I have 3 labels, with 3 captions (i.e. integers)...
Label 1 = 1
Label 2 = 3
Label 3 = 2
What I want to do is search all these labels and find out what the highest number is (in this situation it's 3) so that I can then work out what the next highest value is, for the next label (in the above situation it would be 4.)
1) There is actually a total of 10 labels in my project.
2) The integers are generated randomly (depending on what the highest and also previous integer is) using VB.
For example, in this program...
The first label will always be a 1.
The second label will always be a 2 (i.e. the next highest number to use, which is not the same as the previous label.)
But the third label could actually be a 1 or a 3 (i.e. not a value that is the same as the previous label.)
If All The Labels Are On The Same Form, Then Use A Control Array Of Labels With Index Values 0 To 9
Then A Loop Will Do The Trick
Function MaxLabel ( Optional nLoopMax as Integer = -1 ) as Long
Dim lMax as Long
Dim lValue as Long
Dim nLoop as Integer
If nLoop = -1 Then
nLoopMax = 9
For nLoop = 0 to nLoopMax
lVal = Val(Labels(nLoop).Caption)
if (lVal > lMax) Then
lMax = lVal
MaxLabel = lMax
If You Don't Want To Check All The Labels, Then Pass The Index Of The Last Label In As A Parameter To The Check Function
Yes the labels are on the same form and in an array. I also need to check all the labels, so I used the following code. Thanks to everyone for their help.
'3rd - 10th labels.
yy = 1
zz = Int((maxm - 1 + 1) * Rnd + 1)
If zz <> lbls(yy).Caption Then 'yy = 1-8.
lbls(yy + 1).Caption = zz 'yy = 2-9.
Loop Until lbls(yy + 1).Caption <> "" 'yy = 2-9.
For xyz = 1 To yy + 1 'yy = 1 to 9.
If lbls(xyz).Caption > myval Then
myval = lbls(xyz).Caption
maxm = myval + 1
yy = yy + 1
Loop Until yy = 9
MsgBox "The next highest value is = " & maxm