ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 菌要橙死

[求助] 求vba思路

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:08 | 显示全部楼层
本帖最后由 于箱长 于 2022-11-14 15:13 编辑
于箱长 发表于 2022-11-14 15:02
好像整复杂了,是不是这个意思

图片.png

根据grf1973老师的思路,加了一个条件去掉重复科目

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:12 | 显示全部楼层

思路真棒,我可以借鉴一下,今天没有花了,回头补给您

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:13 | 显示全部楼层
大概懂了,就是把同A的借和贷的对应的科目给对调一下呗?

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
陆离Lowry 发表于 2022-11-14 15:13
大概懂了,就是把同A的借和贷的对应的科目给对调一下呗?

是列示除了本行F列科目之外的其他科目

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:43 | 显示全部楼层
Sub TEST_A1()
Dim Arr, xD, i&, T$, T1$, T2$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([o1], [a65536].End(3))
For i = 2 To UBound(Arr)
    T1 = Arr(i, 1) & InStr("_借貸", Arr(i, 15)): T2 = Arr(i, 6): T = T1 & T2
    If xD(T) = 0 Then xD(T1) = xD(T1) & "," & T2
    xD(T) = 1
Next i
For i = 2 To UBound(Arr)
    T1 = Arr(i, 1) & InStr("_貸借", Arr(i, 15))
    Arr(i - 1, 1) = Mid(xD(T1), 2)
Next i
[r2].Resize(UBound(Arr) - 1) = Arr
End Sub

TA的精华主题

TA的得分主题

发表于 2022-11-14 15:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-11-14 16:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-11-14 18:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习下10楼老师的代码
Sub TEST()
    Dim i&, ar, br()
    Dim d: Set d = CreateObject("Scripting.Dictionary")
    ar = [A1].CurrentRegion
    ReDim br(1 To UBound(ar) - 1, 1 To 1)
    For i = 2 To UBound(ar)
        sKey = ar(i, 1) & "|" & ar(i, 15)
        If Not d.Exists(sKey) Then
           Set d(sKey) = CreateObject("Scripting.Dictionary")
        End If
        d(sKey)(ar(i, 6)) = Empty
    Next i
    For i = 2 To UBound(ar)
        If ar(i, 15) = "借" Then ar(i, 15) = "贷" Else ar(i, 15) = "借"
        sKey = ar(i, 1) & "|" & ar(i, 15)
        br(i - 1, 1) = Join(d(sKey).keys, "、")
    Next i
    [T2].Resize(UBound(br)) = br
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-11-14 19:34 | 显示全部楼层
各位老师关注一下示例中最后一行分录的借贷方的方向,这个科目对应科目应该是本年利润

TA的精华主题

TA的得分主题

发表于 2022-11-14 20:06 | 显示全部楼层
于箱长 发表于 2022-11-14 19:34
各位老师关注一下示例中最后一行分录的借贷方的方向,这个科目对应科目应该是本年利润

这种多借多贷的,只能靠人工判断了,没办法一一对应
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 20:01 , Processed in 0.025604 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表