易表在线答疑技术与交流用户社区 → [求助]Eval的引号不理解


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

主题:[求助]Eval的引号不理解

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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/12/7 6:43:00
  发帖心情 Post By:2006/12/10 20:46:00 [只看该作者]

但是究竟应该怎样理解Eval("""a" + "b""")中的引号呢?照http://bbs.egrid2000.com/cgi-bin/topic.cgi?forum=2&topic=30&show=0的理解,Eval("""a" + "b""")的"""a"是一部分,"b"""是另一部分,"""a"去掉两边的引号,剩下的双音号相当于单引号,"b"""也是这样,最后便形成"a+b",可是这样的表达式并不表示a字符和b字符加在一起呀?
如此简单的问题理解不了,怎么还能掌握Eval函数呢?希望众高手把这个函数解释得更透彻一些,让我们这些普通用户多一些功力。

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/12/10 20:54:00 [只看该作者]

把这段放在任意单元格格式内,看一下结果:
"""a" + "b"""

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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/12/7 6:43:00
  发帖心情 Post By:2006/12/11 5:32:00 [只看该作者]

早试过了,问题是我不理解其中的引号为什么要这样。

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/12/11 7:21:00 [只看该作者]

首先看"a"+"b",这是要执行的命令,其结果只有一个:ab
要在eval计算中得到ab这个结果,公式必须要用""引起来,而eval要求单引号必须改成双引号,所以成了"""a" + "b""",动态生成计算公式"a"+"b",其计算结果就是ab
不知道说清楚没有,具体理解还得看这个帖子:http://bbs.egrid2000.com/cgi-bin/topic.cgi?forum=2&topic=30&show=0

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


加好友 发短信
等级:职业侠客 帖子:449 积分:-10 威望:0 精华:0 注册:2006/8/27 12:47:00
  发帖心情 Post By:2006/12/11 11:38:00 [只看该作者]

本人认同2楼的说法!

因为Eval("""a" + "b""")运行时,外面的双引号和+号应同时处理运算,就得出"ab"这个结果,而"ab"再运算就是ab了。


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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/12/7 6:43:00
  发帖心情 Post By:2006/12/12 19:19:00 [只看该作者]

首先谢谢各位,但是我太笨了,现在还是不明白。照smileboy斑竹的说法,要在eval计算中得到ab这个结果,公式必须要用""引起来,而eval要求单引号必须改成双引号,那么"a"+"b"不应该成为"""a" + "b""",而应该成为"""a"" + ""b"""。
照http://bbs.egrid2000.com/cgi-bin/topic.cgi?forum=2&topic=30&show=0的解释,"""a" + "b"""要以加号为界分成两部分,而smileboy斑竹却是作为一个整体来看的,这怎么理解?

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/12/12 20:32:00 [只看该作者]

要生成"a"+"b"这个公式,就要求在这个公式外加(单)引号,而eval要求单引号要变成双引号,所以就变成了"""a" + "b""",然后直接加在eval函数内即可。
这就是为什么将"""a" + "b"""放在单元格公式内能生成的道理,
呵呵,说了这么多,不知道能懂否?

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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/12/7 6:43:00
  发帖心情 Post By:2006/12/15 6:31:00 [只看该作者]

根本的问题没解决不可能完全整明白。
再问一个问题:
为什么Eval(0.2+5)可以,Eval("0.2+0.5")也可以,而Eval(0.2+0.5)却不可以?

 回到顶部
美女呀,离线,留言给我吧!
shxiaoya
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:331 积分:38 威望:0 精华:0 注册:2006/8/11 20:35:00
  发帖心情 Post By:2006/12/15 10:08:00 [只看该作者]

下面引用由xingfu2006/12/15 06:31am 发表的内容:
根本的问题没解决不可能完全整明白。
再问一个问题:
为什么Eval(0.2+5)可以,Eval("0.2+0.5")也可以,而Eval(0.2+0.5)却不可以?

也许是个BUG吧,按理说表达式要用引号的,所以Eval("0.2+0.5")应该是准确写法。


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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/12/7 6:43:00
  发帖心情 Post By:2006/12/15 10:34:00 [只看该作者]

下面引用由shxiaoya2006/12/15 10:08am 发表的内容:
按理说表达式要用引号的,所以Eval("0.2+0.5")应该是准确写法。

帮助文件:Eval可以对指定的表达式求值,例如Eval(1+1)=2
怎么理解?

 回到顶部
总数 24 上一页 1 2 3 下一页