View Single Post
  #2  
Old 22-06-2017, 07:39
shark shark is offline
Senior Member
 
Join Date: Aug 2010
Location: Russia, Belgorod
Posts: 146
Default

There are two ways to solve the problem. First - use arrays instead of regular variables. Instead x1 = 5, x2 = 3, x3 = 10 etc. use Ar(1) = 5, Ar(2) = 3, Ar(3) = 10. Then the maximum value can be calculated as follows:
Code:
Max = 0
For i = 1 to 3
    If Ar(i) > Max Then Max = Ar(i)
Next
MsgBox "Maximum value is " & Max
Second way - use function with ParamArray:

Code:
Private Function Max(ParamArray ar())
Dim z%, Mx%
    Mx = 0
    For z = 0 To UBound(ar)
        If ar(z) > Mx Then Mx = ar(z)
    Next
    Max = Mx
End Function
Then the maximum value among the other variables can be calculated by calling one function
Code:
Dim x1%, x2%, x3%, x4%
    x1 = 10: x2 = 5: x3 = 20: x4 = 15
    MsgBox "Maximum value is " & Max(x1, x2, x3, x4)
Reply With Quote