这是我的VBA脚本的代码:
Function custom_if_formula(condition)
MsgBox(condition)
End Function
我将公式粘贴到任何单元格上
=custom_if_formula(B1="something")
MsgBox中的结果为:TRUE
或FALSE
。可以代替B1="something"
进入MsgBox吗?
我想要实现的伪代码:
Function custom_if_formula(condition)
condition = condition.formula 'any method which take a literal string
MsgBox(condition)
End Function
P.S。我的目标是实现自己的IFS函数,其行为类似于Excel2016。我只是想知道它是否可能。这就是为什么我不想将字符串作为参数传递的原因。
答案 0 :(得分:0)
我认为您正在寻找:
Function custom_if_formula(condition)
If condition.Value = "something" Then MsgBox "something"
End Function
以B1
作为参数:=custom_if_formula(B1)
。将其放在任何单元格中(当B1
包含字符串“ something”时)将返回:
不过,您应该真正弄清您的意图。 UDF应该向其单元格返回一个值。现在,它只会在UDF的单元格中说0
。另外,寻找“某物”可以解释为寻找任何东西,并且使用这种语气导致“谁在第一,第二在谁”的磨难……
答案 1 :(得分:0)
好的,我找到了一种方法:
Function custom_if_formula(condition)
cell_formula = Range(Application.Caller.Address).Formula 'I get an adress of a cell which call an UDF, and then take all string it contains
arg = Mid(cell_formula, 12, 100)
MsgBox(arg)
End Function