问题描述
名称管理器中存储了以下名为“UDF_FIBO”的UDF函数(Lambda表达式)(表达式根据需要存储为Referer,不带参数)
名称:
UDF_FIBO
推荐人:
=LAMBDA(myVal; IF(myVal>1; IF(myVal>2; UDF_FIBO(myVal-1)+UDF_FIBO(myVal-2);1);1))
在单元格的工作表中测试它,它工作正常。
在 VBA(立即窗口)中,我收到“错误 2029”
错误 2029
错误处理程序没有显示错误 错误编号 0 呃。来源 呃。描述 Err.LastDllError 0
Sub double_recursion()
my = "=LAMBDA(myVal,IF(myVal>1,IF(myVal>2,UDF_FIBO(myVal-1)+UDF_FIBO(myVal-2),1),1))(10)"
Debug.Print Application.Evaluate(my)
End Sub
如果我将字符串更改为简单的递归,则有一个(错误的)结果可用(错误的数学公式,所以它不是解决方案)
Sub simple_recursion()
my = "=LAMBDA(myVal,UDF_FIBO(myVal-1),1))(10)"
Debug.Print Application.Evaluate(my)
End Sub
Testing it with
Debug.Print Application.Evaluate("=UDF_FIBO(10)") is also working fine => Result is correct => 55
克里斯
关于我的系统的内涵:
我必须在 VBA 中使用逗号来分隔变量,而我必须在 Excel 电子表格公式中使用分号,也许您必须根据您的环境更改此符号。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)