易表在线答疑技术与交流用户社区 → [原创]用Eval函数时遇到两种特殊情况的解决办法


  共有7232人关注过本帖树形打印复制链接

主题:[原创]用Eval函数时遇到两种特殊情况的解决办法

帅哥哟,离线,有人找我吗?
wjq1072
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
[原创]用Eval函数时遇到两种特殊情况的解决办法  发帖心情 Post By:2014/1/15 21:41:00 [只看该作者]

在使用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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
[求助]公式  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 帖子:403 积分:1188 威望:0 精华:0 注册:2008/3/24 11:38:00
  发帖心情 Post By:2014/1/16 19:36:00 [只看该作者]

以前曾看到有位版主写了个公式,是从第一行计算到最后行,可以看到光标移动,请教版主如何写?

 回到顶部
帅哥哟,离线,有人找我吗?
iyplx2425
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
[求助]公式  发帖心情 Post By:2014/1/17 14:00:00 [只看该作者]

旖旎楼老师的解答。

 回到顶部
帅哥哟,离线,有人找我吗?
iyplx2425
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
[求助]公式  发帖心情 Post By:2014/1/17 14:00:00 [只看该作者]

谢谢3楼老师的解答。

 回到顶部