多个字段去重_Excel VBA之工作薄 5.8多个工作薄合并-简易版

前景提要

之前两天因为临近放假,各种事情比较的多,暂停更新了两天,今日稍微缓解过来了,重新恢复日更。

之前我们分享了如何汇总合并多个工作薄的数据,可能因为节奏进展的太快了,有些童鞋觉得有点跟不上节奏,因为私下有童鞋和我说,能不能分享一个简单的工作薄汇总的案例,因为实际工作中暂时接触不到太多样化的需求,上节的方法又有点太复杂,那么小编就趁着假期和大家分享一个简易版的工作薄汇总的方法

场景模拟

根据之前小伙伴们的要求,这里我就稍微改动下数据,将原来的合计这一列替换成为产品4

673060b2cbb0f552776eb51d417e7564.png

这样一来我们要处理的数据就变成了这样了,我们要做的事情也更加的简单,只需要将所有的数据汇总即可

方法分析

相对于我们之前的要求,本次的要求是降低了很多,不需要固定的字段,可以减少很多的判断和步骤,如果对于上节内容还不是很了解的童鞋,也可以先看看这篇文章的内容,然后再去回头看看上节的知识。

代码区

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

为了能够让大家更加清楚的了解到上节的代码的作用和效果,我们这里将上节的一些关键代码注释掉,并且保留原代码,这样大家可以更加清楚的了解相对应的代码所实现的功能,可以根据自己的需要灵活的组合。

我们来看看最终的效果

64e4a403902fc9cdb0cfe81b48059a1f.png
30aeaad69c5dcede9aa35f802be07b1c.png

数据还是比较的完美的,实现了我们的要求,不管字段的先后顺序,仅仅是将所有的数据汇总,方便我们对数据后续的整理和操作。

=======================================================

OK。今天就分享到这里了,今日分享的内容就比较的简单了,是将上节的内容的一个缩减版,删去了一些比较特殊的功能,能够满足部分对此类场景有需求的童鞋直接使用,也不用去花时间理解太复杂的逻辑,如果感兴趣的话,可以再去看看上节的内容,对比着学习,效果会更好。

好了,明晚19:00,准时再见。

==========历史相关文章==============================

Excel VBA之工作薄 5.5批量工作薄标准数据的汇总Excel VBA工作薄5.6难度升级!字段顺序不同的多个工作薄如何汇总

Excel VBA工作薄 5.7难度飙升 字段都不同的多个工作薄如何汇总

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值