Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2429|回复: 6

[已解决]求月末日期报错

[复制链接]
发表于 2011-10-29 19:08 | 显示全部楼层 |阅读模式
我现在在学习function 函数,在标准模块增加如
下代码:
Function yuemo1(riqi As Date) As Date
yuemo1 = DateSerial(Year(riqi), Month(riqi) + 1, 0)
End Function
然后在任一单元格输入=yuemo1(2010-5-3),结果日期变成了1905年6月30日,我本意是求2010年5月份的最后一天的日期即2010年5月31日,怎么会变成了1905年6月30日呢?请高手指教 ,谢谢了。
最佳答案
2011-10-29 20:54
2010-5-3
=2005-3
=2002

求月末日期.rar

6.2 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-10-29 20:46 | 显示全部楼层
没想到会这样,不知道为什么。可用下面两者方式引用:

方式1:用双引号把日期括起来,如b2=yuemo1("2010-5-3"),返回40329,即日期值2010-5-31
方式2:引用单元格里的日期值

即使如此,当引用了空单元格后,这个自定义函数会返回1,需处理。

如果高手能来说明原因,就好学习了
回复

使用道具 举报

发表于 2011-10-29 20:54 | 显示全部楼层    本楼为最佳答案   
2010-5-3
=2005-3
=2002

回复

使用道具 举报

发表于 2011-10-29 21:00 | 显示全部楼层
Zipall 发表于 2011-10-29 20:54
2010-5-3
=2005-3
=2002

但例如:b2=yuemo1(2010/5/3),也会出错,返回1900/5/31。
2010/5/3不是减法的缘故呀
回复

使用道具 举报

发表于 2011-10-29 21:23 | 显示全部楼层
回复 爱疯 的帖子

+-*/
不是减法是除法
回复

使用道具 举报

发表于 2011-10-29 21:30 | 显示全部楼层


哦,2010-5-3=2008,2010/5/3=152,明白了{:25:}
回复

使用道具 举报

 楼主| 发表于 2011-10-30 00:51 | 显示全部楼层
爱疯版主前面说的加引号,是初步解决问题了。但后面减法和除法的事没有看明白,能否说得详细一点。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-17 21:18 , Processed in 0.261826 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表