| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4205 人关注过本帖
标题:使用VBA实现不同条件下应收租金的计算-部分条件下计算结果异常
取消只看楼主 加入收藏
小白痴一个
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2023-5-16
结帖率:100%
收藏
 问题点数:0 回复次数:1 
使用VBA实现不同条件下应收租金的计算-部分条件下计算结果异常
使用BVA编写代码,实现以下功能:三种不同的租赁合同,分别是月结,季结,半年结,月结要求是合同开始后的次月起计算每月应收租金(请注意次月开始第一个月的租金计算应考虑到合同开始日至当月月底的天数问题,比如合同开始日为23年1月11日,那么次月即23年2月开始计算第一个月的租金时应根据月度租金额这个参数,只计算1月11日至1月31日共计21天的租金,第二个月开始的整月就不用考虑天数问题,直接使用给定的参数月合同金额,最后一个月若是整月直接使用月合同金额,若不是于整月,根据实际天数计算),至当年度12月至。季结要求合同开始三个月后的次月计算前三个月的应收租金(请注意第一个月的租金计算应考虑到合同开始日至当月月底的天数问题,第二次计算后三个月租金就不用考虑天数问题,最后三个月若是整月直接使用月合同金额,若不是于整月,根据实际天数计算),以次类推,至当年度12月至。半年结要求合同开始六个月后的次月计算前六个月的应收租金(请注意第一个月的租金计算应考虑到合同开始日至当月月底的天数问题,第二次计算后六个月租金时需考虑最后一个月若是整月直接使用月合同金额,若不是于整月,根据实际天数计算),以次类推,至当年度12月至。 以上代码要求是一个自定义函数,函数的参数有五个,分别是合同起始日(日期格式)、合同结束日(日期格式)、第三个参数是结算周期(月结、季结、半年结)、第四个参数是月合同金额,第五个参数是年份,第六个参数是月份(为1-12的月数组成),具体单元选择从哪一行开始,从哪一列开始可自由选择。 结合一个实例来说明一下:一份月结合同,第一个参数合同开始日23年1月1日在H5单元格、第二个参数合同结束日23年8月31日在I5单元格、第三个参数结算周期月结在K5单元格、第四个参数月合同金额75000在G5单元格,第五个参数2023在G1单元格,第六个参数当年度的月份区域在L3:W3(L3单元格的值1表示为当年度的1月份,M3单元格的值2表示当年度的2月份,N3单元格的值3表示当年度的3月份,以次类推至到W3单元格的值12表示当年度的12月份),需要在L5:W5区间的单元格中分别计算出当年度1月份应收租金(L5值应为0),当年度2月份应收租金(M5值75000),当年度3月份应收租金(N5值75000),以此类推至到T5单元格对应的当年度9月份应收租金75000,U5:W5单元格无应收租金。
已经使用VBA实现了部分功能,但有部分情况下计算的结果不正确,具体情况是当结算周期为季度时,合同开始日期中的月份大于等于4月时,计算结果为0,结算周期为半年结时,合同开始日期中的年份为以前年度时,计算结果为0,希望能得到各位大神的帮助
图片附件: 游客没有浏览图片的权限,请 登录注册
非住宅项目23年度月度应收款统计 - 副本.rar (27.92 KB)
搜索更多相关主题的帖子: 月份 参数 计算 单元格 天数 
2023-06-12 08:47
小白痴一个
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2023-5-16
收藏
得分:0 
CalculateRent = rentAmt * (renDate2 - renDate1) / (preDate2 - preDate1)这里面少了一个月数的参数m,我加了进去,测试了一下不同年份不同月份的条件,问题终于得到了解决。
大神就是大神,没有解决不了的问题,利用VBA解决数学上面的问题,确实体现出大神的水平够牛!
2023-06-20 15:51
快速回复:使用VBA实现不同条件下应收租金的计算-部分条件下计算结果异常
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016447 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved