以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [原创]用Eval函数时遇到两种特殊情况的解决办法  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=26871)

--  作者:wjq1072
--  发布时间:2014/1/15 21:41:00
--  [原创]用Eval函数时遇到两种特殊情况的解决办法
在使用Eval时往往遇到下面两种情况;
1、多重判断会在If后面出现多个“)”。
如;If(aaa,bbb,If(ccc,ddd,If(eee,fff,If(----))))
解决方法:
Eval("---"+中间+"----"+Rept(")",[%数量%]))
2、多次运用替换函数会在前面出现多个“Substitute(”。
如;Substitute(Substitute(Substitute(Substitute(----)----)----)----)
解决方法:
Eval(Rept("Substitute(",[%数量%])+"---"+中间+"---")

--  作者:iyplx2425
--  发布时间:2014/1/16 13:11:00
--  [求助]公式

依稀地懂了一点。但下面的一段公式,有几处不明白:

Eval(mid(Rept("" And AddRow(GridName,""""名称"""",[名称])"",[数量]-1),5))

1、红色部分是Rept()函数,是做为mid()函数的第一个参数,应该还有两个参数:即起始位置与字符长度,但这里只有一个参数:“5”。

2、不明白“5”在这里是指什么参数,为什么是5而不是别的。。

3、Eval()函数在这里为什么不是Eval("")的形式,即没有引号。

谢谢。


--  作者:dancedy
--  发布时间:2014/1/16 14:18:00
--  

Eval(mid(Rept(" And AddRow(GridName,""名称"",[名称])",2),5))

 

1.Rept(" And AddRow(GridName,""名称"",[名称])",2)  结果为 And AddRow(GridName,"名称",[名称]) And AddRow(GridName,"名称",[名称])”

   mid(“  ",5) 返回从第5个位置之后的所有字符,即“AddRow(GridName,"名称",[名称]) And AddRow(GridName,"名称",[名称])”,去掉了最前面的第一个“and”

 

2.如第一点所说,参数5是取值以第5个字符为起始位置

 

3.Eval函数中字符串使用“”,具体计算函数不需引号


--  作者:yanzhen
--  发布时间:2014/1/16 19:36:00
--  
以前曾看到有位版主写了个公式,是从第一行计算到最后行,可以看到光标移动,请教版主如何写?
--  作者:iyplx2425
--  发布时间:2014/1/17 14:00:00
--  [求助]公式
旖旎楼老师的解答。
--  作者:iyplx2425
--  发布时间:2014/1/17 14:00:00
--  [求助]公式
谢谢3楼老师的解答。