ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何按困难类型汇总登记表?

如何按困难类型汇总登记表?

作者:绿色风 分类: 时间:2022-08-18 浏览:122
楼主
wjc2090742
Q:如何按困难类型汇总登记表?按地点填写的困难登记表,要求按照困难的类型,将多表汇总为新工作簿中3个工作表,并引用相关数据。
A:
  1. Sub tt()
  2. On Error Resume Next
  3. Dim i%, arr(), ar1(), ar2(), ar3(), k&
  4. m = 0: n = 0: o = 0
  5. For i = 1 To Sheets.Count
  6.     With Sheets(i)
  7.         arr = .[a4].Resize(.Cells(.Rows.Count, 1).End(3).Row - 3, 10).Value
  8.         For k = 3 To UBound(arr, 1)
  9.             If arr(k, 5) > 0 Then
  10.                 m = m + 1
  11.                 ReDim Preserve ar1(1 To 9, 1 To m)
  12.                 ar1(1, m) = m
  13.                 ar1(2, m) = arr(k, 3)
  14.                 ar1(5, m) = arr(k, 4)
  15.                 ar1(6, m) = .[b3]
  16.                 ar1(7, m) = arr(k, 5)
  17.                 ar1(8, m) = arr(k, 8)
  18.             End If
  19.             If arr(k, 6) > 0 Then
  20.                 n = n + 1
  21.                 ReDim Preserve ar2(1 To 9, 1 To n)
  22.                 ar2(1, n) = n
  23.                 ar2(2, n) = arr(k, 3)
  24.                 ar2(5, n) = arr(k, 4)
  25.                 ar2(6, n) = .[b3]
  26.                 ar2(7, n) = arr(k, 6)
  27.                 ar2(8, n) = arr(k, 8)
  28.             End If
  29.             If arr(k, 7) > 0 Then
  30.                 o = o + 1
  31.                 ReDim Preserve ar3(1 To 9, 1 To o)
  32.                 ar3(1, o) = o
  33.                 ar3(2, o) = arr(k, 3)
  34.                 ar3(5, o) = arr(k, 4)
  35.                 ar3(6, o) = .[b3]
  36.                 ar3(7, o) = arr(k, 7)
  37.                 ar3(8, o) = arr(k, 8)
  38.             End If
  39.         Next
  40.     End With
  41. Next
  42. Workbooks.Open (ThisWorkbook.Path & "\" & "表2.xls")
  43. With ActiveWorkbook
  44.     .Sheets("医疗救助").Range("a7").Resize(UBound(ar1, 2), 9) = WorksheetFunction.Transpose(ar1)
  45.     .Sheets("意外事故").Range("a7").Resize(UBound(ar2, 2), 9) = WorksheetFunction.Transpose(ar2)
  46.     .Sheets("生活致困").Range("a7").Resize(UBound(ar3, 2), 9) = WorksheetFunction.Transpose(ar3)
  47.     .Close True
  48. End With
  49. End Sub

问题.rar
2楼
biaotiger1
学习下,数组的用法。

免责声明

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

评论列表
sitemap