前景提要
之前两天因为临近放假,各种事情比较的多,暂停更新了两天,今日稍微缓解过来了,重新恢复日更。
之前我们分享了如何汇总合并多个工作薄的数据,可能因为节奏进展的太快了,有些童鞋觉得有点跟不上节奏,因为私下有童鞋和我说,能不能分享一个简单的工作薄汇总的案例,因为实际工作中暂时接触不到太多样化的需求,上节的方法又有点太复杂,那么小编就趁着假期和大家分享一个简易版的工作薄汇总的方法
场景模拟
根据之前小伙伴们的要求,这里我就稍微改动下数据,将原来的合计这一列替换成为产品4
这样一来我们要处理的数据就变成了这样了,我们要做的事情也更加的简单,只需要将所有的数据汇总即可
方法分析
相对于我们之前的要求,本次的要求是降低了很多,不需要固定的字段,可以减少很多的判断和步骤,如果对于上节内容还不是很了解的童鞋,也可以先看看这篇文章的内容,然后再去回头看看上节的知识。
代码区
Sub test()Dim pathn, sth As Workbook, rng As Range, rng1 As Range, sbook As Workbook, arrT, k&k = 0pathn = ThisWorkbook.PathSet sbook = ThisWorkbookf = Dir(pathn & "")Do While f <> "" l = Cells(Rows.Count, 1).End(xlUp).Row If f <> "test.xlsm" Then For Each sth In Workbooks If sth.Name = f Then GoTo line End If Next sth '=====汇总工作薄的代码====== k = k + 1 If k = 1 Then Workbooks.Open (pathn & "" & f) Set rng = ActiveSheet.UsedRange rng.Copy sbook.Worksheets(1).Cells(1, 1) Else l1 = Cells(1, Columns.Count).End(xlToLeft).Column arrT = Range(Cells(1, 1), Cells(1, l1)) Workbooks.Open (pathn & "" & f) Set rng = ActiveSheet.UsedRange arrW = rng.Rows(1) l2 = UBound(arrW, 2) For i = 1 To l2 On Error Resume Next Num = WorksheetFunction.Match(arrW(1, i), arrT, 0) If Err.Number = 0 Then rng.Columns(i).Offset(1, 0).Copy sbook.Worksheets(1).Cells(l + 1, Num) Else l3 = sbook.Worksheets(1).Cells(1, Columns.Count).End(xlToLeft).Column 'sbook.Worksheets(1).Columns(l3).Insert sbook.Worksheets(1).Cells(1, l3 + 1) = arrW(1, i) rng.Columns(i).Offset(1, 0).Copy sbook.Worksheets(1).Cells(l + 1, l3 + 1) 'ReDim Preserve arrT(1 To 1, 1 To l3 + 1) 'arrT(1, l3) = arrW(1, i) 'arrT(1, l3 + 1) = arrW(1, l2) End If Next i End If '=====汇总工作薄的代码====== ActiveWorkbook.Close True End Ifline: f = Dir()LoopEnd Sub
为了能够让大家更加清楚的了解到上节的代码的作用和效果,我们这里将上节的一些关键代码注释掉,并且保留原代码,这样大家可以更加清楚的了解相对应的代码所实现的功能,可以根据自己的需要灵活的组合。
我们来看看最终的效果
数据还是比较的完美的,实现了我们的要求,不管字段的先后顺序,仅仅是将所有的数据汇总,方便我们对数据后续的整理和操作。
=======================================================
OK。今天就分享到这里了,今日分享的内容就比较的简单了,是将上节的内容的一个缩减版,删去了一些比较特殊的功能,能够满足部分对此类场景有需求的童鞋直接使用,也不用去花时间理解太复杂的逻辑,如果感兴趣的话,可以再去看看上节的内容,对比着学习,效果会更好。
好了,明晚19:00,准时再见。
==========历史相关文章==============================
Excel VBA之工作薄 5.5批量工作薄标准数据的汇总Excel VBA工作薄5.6难度升级!字段顺序不同的多个工作薄如何汇总
Excel VBA工作薄 5.7难度飙升 字段都不同的多个工作薄如何汇总