Excel精英培训网

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

[已解决]请教自定义函数为何无法计算

[复制链接]
发表于 2017-4-29 15:18 | 显示全部楼层 |阅读模式
本帖最后由 icenotcool 于 2017-4-29 17:31 编辑

各位老师:       我根据之前一位的老师写的自定义函数,现在用不了,想麻烦老师看看示例,是怎么回事,谢谢。附件 示例.rar (6.5 KB, 下载次数: 4)
发表于 2017-4-29 17:03 | 显示全部楼层
是DATEDIF的参数错了,你引用了AB1单元格,应该是日期格式,但实际上AB1是空单元格。
回复

使用道具 举报

发表于 2017-4-29 17:08 | 显示全部楼层    本楼为最佳答案   
还有,不算错误吧,但是代码写得很别扭,比如:
Public Function jx(x, y)
If x < y Then
jx = x
ElseIf x > y Then
jx = y
Else: x = y
jx = y
End If
End Function
这个功能的函数VBA本身就有的吧,还要自己做一个。
或者把中间过程代码缩成一句:jx=iif(x<y,x,y)
ljzj函数也存在类似问题。
回复

使用道具 举报

 楼主| 发表于 2017-4-29 17:30 | 显示全部楼层
大灰狼1976 发表于 2017-4-29 17:08
还有,不算错误吧,但是代码写得很别扭,比如:
Public Function jx(x, y)
If x < y Then

谢谢老师,答复,问题解决了
回复

使用道具 举报

 楼主| 发表于 2017-4-29 17:37 | 显示全部楼层
大灰狼1976 发表于 2017-4-29 17:08
还有,不算错误吧,但是代码写得很别扭,比如:
Public Function jx(x, y)
If x < y Then

老师,修改完参数后,没有报错,但是为什么数据显示0,按原理应该显示K列“本月计提”和L列“累计折旧“应该是有数据的啊
回复

使用道具 举报

发表于 2017-4-29 21:15 | 显示全部楼层
应该是你AB1日期的问题,你输入一个晚一点的日期试试,比如2017/6/1,是可以出结果的。
回复

使用道具 举报

 楼主| 发表于 2017-4-30 07:59 | 显示全部楼层
大灰狼1976 发表于 2017-4-29 21:15
应该是你AB1日期的问题,你输入一个晚一点的日期试试,比如2017/6/1,是可以出结果的。

老师,我查出问题了,果然是日期假如是每月的最后一天就无法计算,提前一天就全部就有,问题是我的数据量大,全是取每月最后一天的数据,老师有办法改改公式解决这个问题吗?
回复

使用道具 举报

发表于 2017-4-30 09:13 | 显示全部楼层
我并没有研究你的函数需要实现什么功能,所以不好随便出主意。
你最好把原始数据及需要实现的结果做个示例,我有空时会看的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:40 , Processed in 0.338263 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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