|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- Sub 同夹_多薄_首表_AB分类_BC汇总_字典法参考()
- Dim 结果数组(1 To 65536, 1 To 256)
- Set 字典 = CreateObject("scripting.dictionary")
- 路径 = ThisWorkbook.Path & ""
- 本薄 = ThisWorkbook.Name
- 外薄 = Dir(路径 & "*.xls")
- Do While 外薄 <> ""
- If 外薄 <> 本薄 Then
- Set 打开的外薄 = Workbooks.Open(路径 & 外薄)
- 外首表数组 = 打开的外薄.Sheets(1).[A1].CurrentRegion
- For 列 = 1 To UBound(外首表数组, 2)
- If Not 字典.Exists(外首表数组(1, 列)) Then
- 字典列 = 字典列 + 1
- 字典(外首表数组(1, 列)) = 字典列
- End If
- Next 列
- K = 字典.KEYS
- For 行 = 2 To UBound(外首表数组)
- 字典行 = 字典行 + 1
- For 列 = 1 To UBound(外首表数组, 2)
- 结果数组(字典行, 字典(外首表数组(1, 列))) = 外首表数组(行, 列)
- Next 列
- Next 行
- 打开的外薄.Close
- End If
- 外薄 = Dir
- Loop
- [A1].Resize(1, 字典列) = 字典.KEYS
- Dim 棋盘(1 To 65536, 1 To 5)
- For 行 = 1 To UBound(结果数组)
- 分类列 = 结果数组(行, 1) & 结果数组(行, 2)
- If 字典.Exists(分类列) Then
- 行数 = 字典(分类列)
- 棋盘(行数, 4) = 棋盘(行数, 4) + 结果数组(行, 4)
- 棋盘(行数, 5) = 棋盘(行数, 5) + 结果数组(行, 5)
- Else
- 计数器 = 计数器 + 1
- 字典(分类列) = 计数器
- 棋盘(计数器, 1) = 结果数组(行, 1)
- 棋盘(计数器, 2) = 结果数组(行, 2)
- 棋盘(计数器, 3) = 结果数组(行, 3)
- 棋盘(计数器, 4) = 结果数组(行, 4)
- 棋盘(计数器, 5) = 结果数组(行, 5)
- End If
- Next 行
- Range("A2").Resize(计数器 - 1, 5) = 棋盘
- End Sub
复制代码 |
|