Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 944|回复: 5

[已解决]求助:代码计算不出"本月合计"和"本年累计"?

[复制链接]
发表于 2022-3-18 18:09 | 显示全部楼层 |阅读模式
本帖最后由 龙送农 于 2022-3-18 18:09 编辑

Sub 余额计算()
    arr = [A1].CurrentRegion
    For x = 6 To UBound(arr)
        Select Case arr(x, 6)
        Case "本月合计"
            arr(x, 10) = x1
            arr(x, 12) = x2
            arr(x, 11) = x3
            arr(x, 13) = x4
           arr(x, 14) = x5
            arr(x, 16) = arr(x - 1, 16)
            x1 = 0: x2 = 0: x3 = 0: x4 = 0: x5 = 0
        Case "本年累计"
            arr(x, 10) = y1
            arr(x, 12) = y2
            arr(x, 11) = y3
            arr(x, 13) = y4
         arr(x, 14) = y5
            arr(x, 16) = arr(x - 1, 16)
        Case Else
            x1 = x1 + arr(x, 10)
            x2 = x2 + arr(x, 12)
            x3 = x3 + arr(x, 11)
            x4 = x4 + arr(x, 13)
         x5 = x5 + arr(x, 14)
            y1 = y1 + arr(x, 10)
            y2 = y2 + arr(x, 12)
            y3 = y3 + arr(x, 11)
            y4 = y4 + arr(x, 13)
         y5 = y5 + arr(x, 14)
            arr(x, 16) = arr(x - 1, 16) + arr(x, 10) - arr(x, 12)
        End Select
        If arr(x, 16) > 0 Then
            arr(x, 15) = "借"
        ElseIf arr(x, 16) = 0 Then
            arr(x, 15) = "平"
        ElseIf arr(x, 16) < 0 Then
            arr(x, 15) = "贷"
        End If
        arr(x, 16) = Round(arr(x, 16), 2)         '余额保留两位小数
    Next x
    [A1].CurrentRegion = arr
End Sub

最佳答案
2022-3-18 22:34
龙送农 发表于 2022-3-18 21:29
已经上传附件,麻烦你帮看一下,老师!

你把  Select Case arr(x, 6) 里面的 6 改成7试下看看。
f77484fa344df7e53c5d610fd2d53c89_eIsLtaR2f1vq4t2jlCNSMj1XZKWY1fUnpG7EPjEeMul2fpX.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-3-18 20:55 | 显示全部楼层
本帖最后由 金樽空对月 于 2022-3-18 22:35 编辑

具体不知道你的数据结构是什么,只是根据代码计算写法格式更改了一下,先看看和原来的结果有什么不一样


回复

使用道具 举报

 楼主| 发表于 2022-3-18 21:29 | 显示全部楼层
金樽空对月 发表于 2022-3-18 20:55
具体不知道你的数据结构是什么,只是根据代码计算写法格式更改了一下,先看看和原来的结果有什么不一样。
...

已经上传附件,麻烦你帮看一下,老师!

本月合计、本年累计.rar

13.85 KB, 下载次数: 14

回复

使用道具 举报

发表于 2022-3-18 22:34 | 显示全部楼层    本楼为最佳答案   
龙送农 发表于 2022-3-18 21:29
已经上传附件,麻烦你帮看一下,老师!

你把  Select Case arr(x, 6) 里面的 6 改成7试下看看。
回复

使用道具 举报

发表于 2022-3-18 22:38 | 显示全部楼层
龙送农 发表于 2022-3-18 21:29
已经上传附件,麻烦你帮看一下,老师!

你的这个代码变量太多了,其实没必要
回复

使用道具 举报

 楼主| 发表于 2022-3-18 23:13 | 显示全部楼层
金樽空对月 发表于 2022-3-18 22:38
你的这个代码变量太多了,其实没必要

我按你给的思路修改实现了,谢谢!老师还有高招,分享一下。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-9-21 22:32 , Processed in 0.329524 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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