ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何根据当月不同产品利润数据自动生成产品分月报表

如何根据当月不同产品利润数据自动生成产品分月报表

作者:绿色风 分类: 时间:2022-08-18 浏览:88
楼主
rabbitllu
Q:如何根据不同的产品品种自动生成分月产品利润表?
A:解决方法,使用VBA代码完成,具体如下:

 
先将“当月分品种”工作表中“产品一、产品二……产品八”的相应数据赋值给一个数组,放至内存中,再依次选定工作表名称为数组里第1行第1列(产品一)、第1行第2列(产品二)……第1行第8列(产品八)的工作表,从内存数组中取出相应的数据放至对应工作表中当月相应的单元格区域中。

 

 

数组存的顺序和这个一致,并是按照产品从左到右顺序查找,如图:

 

工作表产品名称顺序无所谓先后:

 


VBA代码如下,由小千老师编写:
  1. Sub 问题1()
  2. Dim icol As Integer, irow As Integer
  3. Dim arra
  4. Dim i As Integer, j As Integer, k As Integer
  5. Dim rng As Range
  6. Sheets("当月分品种").Select
  7. icol = Cells(3, Columns.Count).End(xlToLeft).Column - 1
  8. irow = Cells(Rows.Count, "A").End(xlUp).Row
  9. arra = Range(Range("B3"), Cells(irow, icol)).Value
  10. Sheets(arra(1, 1)).Select
  11. For Each rng In Range("AC3:AS3")
  12.     If Right(rng.Value, 3) = Sheets("INF").[B5].Value Then
  13.        k = rng.Column
  14.     End If
  15. Next
  16. For i = 1 To UBound(arra, 2)
  17. With Sheets(arra(1, i))
  18.     For j = 2 To UBound(arra, 1)
  19.         .Cells(j + 2, k) = arra(j, i)
  20.     Next
  21. End With
  22. Next
  23. End Sub
优点:由于使用了VBA数组,速度运行很快,产品数量(可以增加,同时增加相应的产品月报)和种类(可以改名,同时更改产品SHEET表名称)及“当月分品种”行数不受限制,列只要保证TOTAL有数据,通用性很强,每月只需要更新月份和当月产品数据,一键完成分产品月报,在此感谢小千老师的耐心解答。


公司利润表a.rar
2楼
kevinchengcw
坐沙发,看好帖

免责声明

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

评论列表
sitemap