当前位置:   article > 正文

应用VBA在Excel表中执行统计_excel vba宏运行次数统计

excel vba宏运行次数统计

  临时接到一个Excel表,要执行统计工作,手工做法很麻烦,应用VBA稍微熟悉一点。

  很长时间不做的话就会陌生,写一点记录以备后查。

  1、在一个模块中定义结构体,用于记录数据,一般是针对一行一个结构体。

  1. '定义物料编码的结构体
  2. Public Type WZStruct
  3. WLBM As String '物料编码
  4. WLZ As String '物料组
  5. WLMS As String '物料描述
  6. DW As String '单位
  7. WLSum2017 As Single '计算统计的和
  8. WLSum2018 As Single '计算统计的和
  9. WLSum2019 As Single '计算统计的和
  10. WL2017 As Integer '统计2017个数
  11. WL2018 As Integer '统计2018个数
  12. WL2019 As Integer '统计2019个数
  13. End Type
  14. Public WZYQCY(6639) As WZStruct '6639行数据

  2、常用的操作记录:

  1. '补全信息
  2. '先搜索2017
  3. Sheets("2017年消耗").Activate
  4. For IFor = 1 To MaxFor
  5. DoEvents
  6. '1.取列表的物料编码
  7. WZYQCY(IFor).WLBM = ListBox1.List(IFor)
  8. '搜索物料编码所在的行
  9. Set FindCellOK = Worksheets("2017年消耗").Columns("B").Find(what:=WZYQCY(IFor).WLBM)
  10. If Not FindCellOK Is Nothing Then
  11. '2.物料组
  12. Range("A" + Trim(Str(FindCellOK.Cells.Row))).Select
  13. WZYQCY(IFor).WLZ = Selection.Formula
  14. '3.物料描述
  15. Range("C" + Trim(Str(FindCellOK.Cells.Row))).Select
  16. WZYQCY(IFor).WLMS = Selection.Formula
  17. '4.单位
  18. Range("D" + Trim(Str(FindCellOK.Cells.Row))).Select
  19. WZYQCY(IFor).DW = Selection.Formula
  20. '5.统计消耗量
  21. 'WZYQCY(IFor).WLSum = Application.SumIf(Sheets("2017年消耗").Range("B2:B4386"), WZYQCY(IFor).WLBM, Sheets("2017年消耗").Range("F2:F4386"))
  22. '6.统计个数
  23. 'WZYQCY(IFor).WL2017 = Application.CountIf(Sheets("2017年消耗").Range("B2:B4386"), WZYQCY(IFor).WLBM)
  24. End If
  25. Next
  26. '插入形成的数据行
  27. Sheets("小修1").Activate
  28. For IFor = 1 To MaxFor
  29. '插入一个新行
  30. Range("A" + Trim(Str(IFor + 2))).Select
  31. Selection.Insert Shift:=xlDown
  32. '更新数据
  33. '序号
  34. Range("A" + Trim(Str(IFor + 2))).Select
  35. Selection.Formula = Str(IFor)
  36. '物料组
  37. Range("B" + Trim(Str(IFor + 2))).Select
  38. Selection.Formula = WZYQCY(IFor).WLZ
  39. '物料编码
  40. Range("C" + Trim(Str(IFor + 2))).Select
  41. Selection.Formula = WZYQCY(IFor).WLBM
  42. '物料描述
  43. Range("D" + Trim(Str(IFor + 2))).Select
  44. Selection.Formula = WZYQCY(IFor).WLMS
  45. '单位
  46. Range("E" + Trim(Str(IFor + 2))).Select
  47. Selection.Formula = WZYQCY(IFor).DW
  48. '2017年数据
  49. Range("G" + Trim(Str(IFor + 2))).Select
  50. Selection.Formula = WZYQCY(IFor).WL2017
  51. '2018年数据
  52. Range("H" + Trim(Str(IFor + 2))).Select
  53. Selection.Formula = WZYQCY(IFor).WL2018
  54. '2019年数据
  55. Range("I" + Trim(Str(IFor + 2))).Select
  56. Selection.Formula = WZYQCY(IFor).WL2019
  57. Next

  3、一般可以录制宏以后然后修改录制的编码,但是VBA里面略有不同。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/731470
推荐阅读
相关标签
  

闽ICP备14008679号