excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA ListView控件/Combox组合框控件/科目汇总表(2)

本文于2023年4月19日首发于本人同名公众号:Excel活学活用,更多文章敬请关注

前面我们分享了使用ListVeiw进行数据展示(Excel VBA 数据分析展示/ListView控件),今天,我们继续,把科目汇总的功能做出来:

接着前天的表格,我们增加了几个控件:

Combox组合框(CmbMonth),用来选择月份,根据它的值来更新科目汇总表数据(目前仅把列表做好了,但它的change事件还没有做,后续完成。)

Listview控件(LvSum),用来展示汇总数据,前面我们添加的LvDetail暂时隐藏,等后面可能会用到,当我们双击科目汇总表的记录时,用LvDetail来展示明细记录。

代码经过了大量修改,比较多,我就不贴在这里,放到第二条,代码中我也加了一些注释,感兴趣的同学可以看看。

这里我们稍微解释一下设计思路:

一、把“明细账“数据读入数组arrDetail

二、利用字典提取不重复记录,把月份提取到数组arrMonth中,再把arrMonth赋值给CmbMonth.list

三、根据月份,即CmbMonth的值,筛选记录,存到数组arrSelect里。如果月份为空,则默认选取所有记录,这就简单了,直接来个arrSelect=arrDetail

,如果月份不为空,则选择当前月份及以前月份的所有数据。这里就有点小麻烦了,因为我们不知道有多少条符合条件的记录,可以有以下方法:

(一)可以定义一个相对较大行数的数组,或者跟arrDeltail相同行、列。这样在功能上完全没有问题,但总觉得不够“精确“,非本人所愿。

(二)使用reDim Preserve数组的方法,自动扩展数组大小,并保留已有数据。这里也有点小问题,数组动态扩展只能扩展列方向,所以我们当下的arrSelect数组跟arrDetail或者说“明细账"表的方向是不同的,相当“转置"了。等筛选结束,得把arrSelect做一个转置。

同时,把“科目_编码"字段相应存到字典里,取得符合条件的不重复科目记录。

四、根据科目代码记录数,重定义数组arrSum的大小,用于存放科目汇总数据。

五、根据arrSum、arrCode、arrName、arrSelect循环取数汇总,一次性完成期初余额、本月发生、累计发生、期末余额的汇总。

六、再循环arrSum取得科目方向、发生额汇总,这里有一点注意,当余额为0时,它的方向为“平“,就不是科目本身的方向了。

七、把arrSum的数据写到LvSum里。

主要过程就是这样,还有一些细节方面的东西不展开讲了,比如字段位置、ListView列宽、对齐方式、数字格式等等,大家感兴趣的话自己多琢磨吧。

另外,这里先预告一下,下期我们准备分享通过月份的选择来更新科目汇总表,有时间再做一个一级科目的汇总啊,导出啊,甚至把科目汇总表的数据写入报表。先挖个坑吧。

好,今天就分享到这。我们下期再会。

☆猜你喜欢☆

Excel VBA 这样酷炫的日期控件,你不想要吗?

Excel VBA 最简单的收发存登记系统

Excel 公式函数/数据验证/动态下拉列表

Excel VBA 文件批量改名

Excel 公式函数/数据透视表/固定资产折旧计提表!

Excel VBA 输入逐步提示/TextBox+ListBox

本文使用 文章同步助手 同步,本文于2023年4月19日首发于本人同名公众号:Excel活学活用,更多文章敬请关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接