集算器中使用 eval 函数来生成字符串表达式如何实现?
集算器中有个参数 wdh
,需要根据 wdh 这个参数生成字符串表达式:
if(wdh==1:“1=1”,wdh==null":“1=1”;“cast(wtkhh as int)=”+wdh)
,这个表达式将用于 select() 语句当中。
我的写法是
A1 单元格中写 =wdh
C1 单元格中写 =eval(“if(?==1:“1=1”,?==null:“1=2”;“cast(wtkhh as int)=wdh”)”,A1)。
D1 单元格中写 =select(C1)。
求教,这样的写法总是报错
那样写法当然报错,select 会拿着“C1”本身去计算,而不会把 C1 内容拿进去算。否则你想怎么可能区分出来?
SPL 的宏
这些认真读一下啊,论坛首页右边的学习导航贴里有你需要的一切。
生成待执行的表达式和 eval 无关,那是纯粹的字符串操作,执行它才是 eval 的事情。基本概念要先理清。
你这个场景看起来也用不着 eval,直接写就行了。另外,SPL 也没有 cast 方法。