vba用户定义函数中的用户定义运算符
我该如何设置,以便用户可以定义运算符?例如,用户将键入vba用户定义函数中的用户定义运算符,vba,operators,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
=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
我想这段代码的修改版本可以,试试看
Function IfTrue(Value1, Criteria1, ValueifTrue)
'Function to Evaluate Calculation'
If Evaluate(Value1 & Criteria1) Then
IfTrue = ValueifTrue
Else
IfTrue = Value1
End If
End Function
这只是一个基本的想法,你可能想在此基础上发展 枚举所有可能的运算符,并将其与select case一起使用。该值将以某种方式计算。是什么让你认为(甚至没有测试!)一种方法比另一种方法占用的CPU更少/更多?=if((x+y)>=z,z,(x+y))在这种情况下,如果答案为false,则必须重新计算答案。我假设在我的udf中,(x+y)值将被存储,如果为false,则返回。@vba4all-谢谢您的指针。我认为这是访问VBA。对于Excel来说,它是评估。谢谢你。:)