作者:绿色风
分类:
时间:2022-08-17
浏览:109
楼主 omnw |
Q:如何按照“先进先出”法自动调整应付款的账龄? A:通过输入某笔应付款本年的“借方”或“贷方”发生额,以代码根据期初账龄数据,自动实现调整期末账龄数据。 原理: 1、依次将期初各期账龄数据调整为上一级期末的账龄数据,账龄最长的期末数据为倒数两级期初数据的合计。 2、期末最短账龄数据为本期贷方发生额。 3、从期末最长账龄数据开始依次减去本期借方发生额,完成期末数据的调整。 具体代码如下:- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim i As Integer, MyValue As Double
- If Target.Count = 1 Then
- If Target.Row >= 5 And (Target.Column = 17 Or Target.Column = 18) Then
- Range("W" & Target.Row & ":AB" & Target.Row).ClearContents '清除原有数据
- Range("W" & Target.Row) = Range("R" & Target.Row) '1年以内账龄数据,贷方发生额
- Range("X" & Target.Row) = Range("J" & Target.Row) '1-2年账龄数据
- Range("Y" & Target.Row) = Range("K" & Target.Row) '2-3年账龄数据
- Range("Z" & Target.Row) = Range("L" & Target.Row) '2-3年账龄数据
- Range("AA" & Target.Row) = Range("M" & Target.Row) '2-3年账龄数据
- Range("AB" & Target.Row) = Range("N" & Target.Row) + Range("O" & Target.Row) '3年以上账龄数据
- MyValue = Range("Q" & Target.Row) '保存借方发生额
- For i = 28 To 23 Step -1 '处理借方发生额
- If MyValue > 0 Then '可用借方余额
- If Cells(Target.Row, i) > MyValue Then '如果某账龄的余额大于借方发生额
- Cells(Target.Row, i) = Cells(Target.Row, i) - MyValue '处理该账龄余额
- MyValue = 0
- Else '如果某账龄应付款余额小于借方余额
- Cells(Target.Row, i) = 0 '该账龄应付款余额为零
- MyValue = MyValue - Cells(Target.Row, i) '可以使用的借方余额
- End If
- End If
- Next i
- End If
- End If
- End Sub
如果使用此规则处理应收账款,请将代码中的Q列和R列互换。 应付账款.rar |
2楼 kevinchengcw |
学习了,感谢卞版分享! |
3楼 俟人.琳 |
学习了,谢谢! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一