用户定义函数中的vba用户定义运算符

时间:2015-01-05 15:37:45

标签: vba operators

如何制作以便用户可以定义操作符?例如,用户将键入

=iftrue(x+y,">=z",x+y) (much like a sumif or regular if function)

我知道我可以使用普通的if函数或使用单独的单元来解决逻辑问题。但是,我这样做的原因是因为我有一个非常cpu密集的计算,必须重新计算而不是返回已经计算的值。

这是我现在所拥有的。

Function iftrue(Value1, Criteria1, ValueifTrue)

' Function

If Value1 = Criteria1 Then
iftrue = ValueifTrue

Else: iftrue = Value1

End If

End Function

1 个答案:

答案 0 :(得分:2)

我猜测你的代码的这个修改版本,试试看..

Function IfTrue(Value1, Criteria1, ValueifTrue)
    'Function to Evaluate Calculation'

    If Evaluate(Value1 & Criteria1) Then
        IfTrue = ValueifTrue
    Else
        IfTrue = Value1
    End If

End Function

这只是基本的想法,你可能希望在此基础上发展!