ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何按照已付款金额先进先出法核销“购进明细”里面的单据,并留下未核销的单据

如何按照已付款金额先进先出法核销“购进明细”里面的单据,并留下未核销的单据

作者:绿色风 分类: 时间:2022-08-17 浏览:76
楼主
xyf2210
Q:如何按照已付款金额先进先出法核销“购进明细”里面的单据,并留下未核销的单据?
A:
  1. Sub test()
  2.     Dim d, arr, i, brr(1 To 65536, 1 To 1), txt
  3.     Set d = CreateObject("scripting.dictionary")   '定义字典
  4.     arr = Sheets("已付款").Range("a1").CurrentRegion
  5.     For i = 2 To UBound(arr)
  6.         d(arr(i, 2)) = d(arr(i, 2)) + Val(arr(i, 5))  '将已付款的供应商金额汇总
  7.     Next
  8.     arr = Sheets("购进明细").Range("a1").CurrentRegion
  9.     For i = 2 To UBound(arr)
  10.         If Not d.exists(arr(i, 5)) Then              '判断是否有付款信息
  11.             brr(i, 1) = ""
  12.         Else
  13.             d(arr(i, 5)) = d(arr(i, 5)) - Val(arr(i, 7))     '供应商付款金额比较
  14.             If d(arr(i, 5)) > 0 Then
  15.                 brr(i, 1) = ""
  16.             Else
  17.                 brr(i, 1) = Abs(d(arr(i, 5)))
  18.                 txt = arr(i, 5)
  19.                 Do While arr(i + 1, 5) = txt            '找到这个供应商的最后一行
  20.                     i = i + 1
  21.                     brr(i, 1) = ""
  22.                 Loop
  23.             End If
  24.         End If
  25.     Next
  26.     Sheets("购进明细").Range("h1").Resize(i - 1, 1) = brr   '将数据写入单元格
  27. End Sub

核销应付单据.rar
2楼
yjzstar
魔王V5
3楼
我的1314
魔王V5
4楼
老糊涂
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap