点【关于本公众号】了解一下,欢迎关注,谢谢!
快速浏览
实用案例
|日期控件||简单的收发存||收费管理系(Access改进版)|
|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)||银行对账单自动勾对|
收费使用项目
|财务管理系统||工资薪金和年终奖个税筹划||新税法下工资表模版|
内容提要
合并文件夹下所有Excel文件、CSV文件,包含所有子文件夹 递归处理所有子文件夹
我收集了本论坛的两位老师数据汇总的VBA,本人小白一个请老师们帮将这两个文件的VBA结合成一个,主要是合并我每天工作日报的需求:
第1个(1选择文件夹数据合并)优点可以选择文件夹,不用将VBA文件复制到要汇总的文件内。直接可以选择文件夹提取数据。
第2个(2文件夹内数据汇总)优点是可以选择提取数据的项目(背景黄色处是填写要汇总的数据列数标题),非常方便提取指定的数据
我已将需求和符件上传,感谢。
https://club.excelhome.net/forum.php?mod=viewthread&tid=1703073&page=1&_dsign=c649e35c
1、Excel工作表合并,新花样, 这可咋搞?单张明细表中包含多个标题,位置不固定、字段顺序不统一
1、他这个需求说了一大堆,概括起来就是今天的文章标题:“按指定字段合并文件夹下所有CSV文件”,他所需要的是能自主选择文件夹,自动合并文件夹下所有CSV文件。
2、我们再拓展一下,文件类型包括所有Excel文件、CSV文件,并且可以包括所有子文件夹。
1、我们上面列出的第2条案例【重磅升级:Excel文件合并,包括子文件夹,文件名关键字过滤,工作表名关键字过滤】跟今天的案例非常接近了,如果将就着用一下也能实现,我们可以先把所有Excel工作表(CSV文件)先合并起来,然后删除不需要的字段。
2、前述案例的难点在于,添加字段,碰到工作表中字段比已经处理的工作字段要多,我们就要把它添加到结果表中;而今天这个案例,难点在于,选择字段,只提取我们需要的数据。这也是两个案例的主要区别。
3、如果说一定要比较难易程度的话,我觉得今天这个要稍简单一点。
4、我们就借助前期案例,进行修改,来完成今天的案例。
5、其他过程我们就不多说了,感兴趣的朋友可以参考前述案例,我们就简单说一下合并的逻辑:
(1)我们定义一个结果数组arrTem,标题在第一列,跟我们的工作表是一个转置的关系,可以横向扩展。
(2)当我们循环到一个工作表,把这个工作表装入数组arr,包括表头字段。
(3)我们根据arr的行数,扩展结果数组arrTem的列数。这里我们记下扩展前的最大列数preLine,重定义arrTemp的列数currLine=preLine+ubound(arr)-1,一次性扩展到位,不用一列一列地扩展。
(4)我们循环arrTem的标题,记下标题的值colName,然后到arr标题里找这个colName(利用pxy函数定位,把位置赋值给currCol )如果有,我们就循环arr的行,把currCol所在列的数据写入arrTemp。描述得比较费劲,可能也不好理解,我们看代码,这段代码可以算是本案例的灵魂:
If itemCount > 0 Then
arr = .Range(.Cells(titleRow, 1), .Cells(lastRow, lastCol))
preLine = UBound(arrTem, 2)
currLine = preLine + UBound(arr) - 1
ReDim Preserve arrTem(1 To UBound(arrTem), 1 To currLine)
'//填上工作簿名、工作表名
For i = 2 To UBound(arr)
preLine + i - 1) = wb.Name
preLine + i - 1) = ws.Name
Next
'//合并数据
For j = 1 To UBound(arrTem)
colName = arrTem(j, 1)
currCol = Pxy(arr, colName, 2)
If currCol > 0 Then
For i = 2 To UBound(arr)
preLine + i - 1) = arr(i, currCol)
Next
End If
Next
End If
示例代码详见当天另一条推文。
后记
1、汇总表中的第3行,汇总字段,是汇总取数的关键,一定要设置正确。
2、原表中第一行“标题所在行”,目前是没有用到,我们在用户窗体中有一个设置,非首行标题。
3、原需求中的汇总文件类型是CSV,我们添加了Excel文件类型,直接在代码里判断文件扩展名,也可以在用户窗体中加上CheckBox,勾选合并的文件类型。
好,今天就到这里,我们下期再会!
安利小店 安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精、洗衣液也是日常必备,用过都说好! | |
合谷医疗 合谷医疗专攻各种疑难杂症,尤其擅长抑郁症、焦虑失眠、儿童神经发育异常、多动症、自闭孤独症、腰颈椎疾病治疗,可谓神乎其技!体验过的直呼早点来就好了! |
喜欢就点个赞、点在看、留言评论、分享一下呗!感谢支持!
案例文件分享说明:
案例文件可免费分享,但需符合以下要求:
请关注、点赞、点在看、点...、留言,方便的话分享一下就完美啦!如果不便走上面的“流程”,请打赏,万分感谢!
请添加上方我的合谷医疗企业微信,案例文件通过微信发送。如有定制需求,亦可通过微信联系。
Excel问题,请在文章下面留言讨论!或者加入我的付费交流群提问!