Function Excel VBA自定义项格式-计算前更改参数值

Function Excel VBA自定义项格式-计算前更改参数值,function,vba,excel,arguments,Function,Vba,Excel,Arguments,我试图在Excel VBA中编写一个公式来计算:RR=((a/(a+B))/(C/(C+D))) 当四个参数(A、B、C、D)中的任何一个为0时,我想在计算中将它们的值更改为0.5 有没有一个简单的方法可以做到这一点?我相信我的格式是错误的,或者我是走错了路。任何有用的提示都将不胜感激 我试过: Function RR(A, B, C, D) As Double If A = 0 And B = 0 Then A = 0.5 B = 0.5 RR

我试图在Excel VBA中编写一个公式来计算:RR=((a/(a+B))/(C/(C+D)))

当四个参数(A、B、C、D)中的任何一个为0时,我想在计算中将它们的值更改为0.5

有没有一个简单的方法可以做到这一点?我相信我的格式是错误的,或者我是走错了路。任何有用的提示都将不胜感激

我试过:

Function RR(A, B, C, D) As Double
If A = 0 And B = 0 Then
        A = 0.5
        B = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    ElseIf A = 0 Then
        A = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    ElseIf B = 0 Then
        B = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    ElseIf C = 0 Then
        C = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    ElseIf D = 0 Then
        D = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    ElseIf A = 0 And D = 0 Then
        A = 0.5 And D = 0.5
        RR = ((A / (A + B)) / (C / (C + D)))
    Else:  RR = ((A / (A + B)) / (C / (C + D)))
    End If 
End Function
试试这个:

Function RR(A, B, C, D) As Double
    If A = 0 Then A = 0.5
    If B = 0 Then B = 0.5
    If C = 0 Then C = 0.5
    If D = 0 Then D = 0.5
    RR = ((A / (A + B)) / (C / (C + D)))
End Function

谢谢您!这很有效。我保持了整个等式不变,它工作得很好。