求助,凭证科目合并
我现在有会计分录序时簿一个文件。它的内容是下面这个样子,我现在需要先提取每张凭证的借贷会计科目,然后反写到每一行数据中。
这样做的目的在于按照每张凭证的借贷会计科目来对凭证进行业务分类,从而达到分析的目的。完成后我们可以做的有:
1.按照借贷科目对凭证进行分类将会更加准确。
2.分类之后可以直接关联每种类型中货币资金的去向,用更直接简单的方法来编制现金流量表。
合并凭证.rar
(89.62 KB)
现在添加了附件如下:
test.rar
(4.43 KB)
以下代码是我在VBA中用到的。能满足要求。
但我的数据源本身就是VFP,还请乡亲们帮忙提供解决思路或者解决方案,谢谢。
程序代码:
Sub 凭证一级科目提取() Dim br, cr(60000, 4), dc, dk, de, df, dw(60000, 1) br = [a1].CurrentRegion Set d = CreateObject("scripting.dictionary") bok1 = ActiveSheet.Name For xrow = 2 To UBound(br) If br(xrow, 10) = 0 Then 方向 = "cr" Else: 方向 = "dr" End If If br(xrow, 2) & br(xrow, 3) <> dk Or xrow = UBound(br) Then Item = Item + 1 If Item > 1 Then cr(Item - 1, 0) = dk 'key cr(Item - 1, 1) = dc '科目 cr(Item - 1, 2) = de '摘要 cr(Item - 1, 3) = df '制单人 dk = "" dc = "" de = "" df = "" End If End If dk = br(xrow, 2) & br(xrow, 3) If InStr(dc, 方向 & br(xrow, 23)) = False Then dc = dc & 方向 & br(xrow, 23) If InStr(de, Left(br(xrow, 5), 8)) = False Then de = Left(br(xrow, 5), 8) '只要最后一个摘要。 If InStr(df, Left(br(xrow, 12), 8)) = False Then df = df & Left(br(xrow, 12), 8) Next Sheets.Add Range(Cells(1, 1), Cells(Item, "e")) = cr [a1:d1] = Array("key", "科目", "摘要", "制单人") Cells.WrapText = False Sheets(bok1).Select For xx = 1 To UBound(cr) d(cr(xx, 0)) = cr(xx, 1) Next xx For yy = 2 To [a65536].End(xlUp).Row + 1 dw(yy - 2, 0) = d(br(yy - 1, 2) & br(yy - 1, 3)) Next yy Range(Cells(1, "ab"), Cells(UBound(br), "ab")) = Application.Index(dw, 0, 0) [ab1] = "凭证" End Sub
[此贴子已经被作者于2018-11-22 20:54编辑过]