2016-10-12 12 views
0

私は多くの値を与える手続きを持っており、セルを分離するためにこれらの値の最大値と最小値を返す必要があります。他の関数を関数に入れて使う方法は?

私の手続きでは、同じ手順を実行する最大と最小の2つの異なる関数を定義します。

これを行うより良い方法はありますか?

Function Pmax(P, Mx, My, b, d, b1, d1, ex, ey) 
P1 = (---------) 
P2 = (---------) 
P3 = (---------) 
P4 = (---------) 
Pmax = Application.WorksheetFunction.Max(P1, P2, P3, P4) 
End Function 
Function Pmin(P, Mx, My, b, d, b1, d1, ex, ey) 
P1 = (--------) 
P2 = (--------) 
P3 = (--------) 
P4 = (--------) 
Pmin = Application.WorksheetFunction.Min(P1, P2, P3, P4) 
End Function 

答えて

0

を使用すると、Pの値の配列を返すPnの関数を定義することができ入る

Function Pn(P, Mx, My, b, d, b1, d1, ex, ey) 
    P1 = '(---------) 
    P2 = '(---------) 
    P3 = '(---------) 
    P4 = '(---------) 

    Pn = Array(P1, P2, P3, P4) 
End Function 

、次いでPmin()Pmax()の機能で使用してください。

Function Pmax(P, Mx, My, b, d, b1, d1, ex, ey) 
    Pmax = Application.WorksheetFunction.Max(Pn(P, Mx, My, b, d, b1, d1, ex, ey)) 
End Function 

Function Pmin(P, Mx, My, b, d, b1, d1, ex, ey) 
    Pmin = Application.WorksheetFunction.Min(Pn(P, Mx, My, b, d, b1, d1, ex, ey)) 
End Function 
+0

私の答えもありました。私がそれを編集する前に。 :D(私はbyrefを使用) – Pierre

+0

@ピエール、よくあなたの最初の答えはかなりこれは – user3598756

+0

それは私がそれを変更したためではなかった。 ;-) – Pierre

2
Function Pminmax(P, Mx, My, b, d, b1, d1, ex, ey) 
    P1 = (---------) 
    P2 = (---------) 
    P3 = (---------) 
    P4 = (---------) 
    dim a(1 to 2,1 to 1) 
    a(1,1) = Application.WorksheetFunction.Max(P1, P2, P3, P4) 
    a(2,1) = Application.WorksheetFunction.Min(P1, P2, P3, P4) 
    Pminmax=a 
End Function 
Excelで

:2個のセル、式中、CTRL +シフトを選択+

+0

良い答え、あなたもexcelでの使い方を説明できますか?) – R3uK

+0

両方とも:-)を実行しました(とにかくExcelでそれを使う部分を追加しようとしました:D) – Pierre

+0

ピエールありがとう、user3598756どちらもうまくいきました。ピエール私はその答えを見ることができませんでした。再度、感謝します。 – devi

関連する問題