使用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,希望能得到各位大神的帮助。
|