我想在Visual Basic中定義一個函數,它在給定的括號內計算所得稅。投入應該是收入,邊際稅率,低邊界邊界,以及 - 可選的 - 上邊界邊界。 (頂部支架沒有上部邊界)。確定實際傳遞給VBA函數的多少個(可選)參數?
下面是我如何去做的。首先,我定義一個 「斜坡」 的功能如下:
Public Function ramp(x)
ramp = (x + Abs(x))/2
End Function
這基本上是相同的,如果(X < 0,0,x)的。然後我定義爲稅功能(在荷蘭)作爲
Public Function schijfbelasting(inkomen, ondergrens, bovengrens, tarief)
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
End Function
此處「inkomen」 =收入「ondergrens」 =下托架邊界,「bovengrens」 =上部支架邊界,「tarief」 =邊際稅率,並且輸出「schijfbelasting」=指定括號中的稅。
這一切工作正常,但我想用
Optional bovengrens
在Matlab中,使「bovengrens」(上部支架邊界)可選的,我會用「nargin」(參數個數)功能做一些這樣的:
Public Function schijfbelasting(inkomen, ondergrens, Optional bovengrens, tarief)
If nargin==4
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
Elseif nargin==3
schijfbelasting = ramp(tarief*(inkomen-ondergrens))
End If
End Function
但是,我不知道類似Visual Basic中「nargin」的函數。它也可能是「如果論證」bovengrens「被定義」的話。有人知道如何解決這個問題嗎?提前致謝。
P.S.我知道我可以通過在頂部括號中填入一個非常大的數字來使代碼「工作」,但我不認爲這是一種優雅的編碼。
了。因此,將'Optional bovengrens'移動到參數列表的末尾或者設置'Optional tarief'。太。 –