上班这点事儿PPT.log

分分钟我把1200个Excel文件合并成了一个!

2018-08-30  本文已影响16人  刚刚的钢

在实际的工作中,累到吐血的Case很多很多,当经历过多次深度吐血的经历后,我果断的走上了止血的道路,虽然这条道路有些曲折,但当我看到别人在我曾经吐血的地方喷血流泪时,我的心情就平静了很多很多。

一、一次吐血的经历

朋友,你是否为那些搬砖的工作苦恼过?

朋友,你是否为那些持续搬砖的工作而抓狂过?

朋友,你是否为那些隔三差四都要搬砖的工作而吐血过?

朋友,你是否为.......stop!不能在按照这套路写下去了,再写整个人都会 shut down!

今天跟大家sharing一个我曾经吐血的case,这个case很简单也很暴力看后大脑第一反应就是"TMD,谁爱干谁干,老子不干!",可惜我不是老子,所以我还得去干。哈哈。

言归正传,工作的内容是客户给我了1200个EXCEL文件,让我分析一下里面的数据,文件的部分阵容如下图所示。

看着就想晕

请让我沉默三分钟,向之前的我点几个赞!

那一刻,我深情的望着客户,客户也深情的对我点了点头,我知道那一刻我不是在梦里,而是希望自己在梦里!

客户临走的时候说“东西有点多,给你一周的时间完成”,我“哦”的声音还没发完,客户就已经消失在我的视野中。

之后,我尝试手工合并了10个文件,通过简单的估算我发现要完成这项工作一周是搞不定的,怎么办,怎么办,该怎么办?

没有什么怎么办,只有自己办!

通过分析这个文件合并的过程,我发现整个过程就是一个循环打开文件,然后COPY打开文件的内容并粘贴到指定的excel中,重复1200次而已。

分析完这个过程后,我觉得这个可以通过程序实现,于是花了一天的时间查阅了EXCEL宏的编程实例,拼凑了一段代码经过多次调试后终于可以工作了。

程序执行约5分钟后(跟电脑的配置有关),这1200个文件就整合到了一个文件中,之后对合并的文件稍加处理就可以使用透视表进行数据分析了,三天后我完成了该项工作并按时提交了分析报告,看着客户惊奇的眼神,我知道我已经征服了客户。

二、我是怎么做的

通常来说,当我遇到问题的时候我会花一定的时间从what(问题的本质)、why(为什么要做)和how(怎么去做)三个方面去分析问题(见下图)

分析完毕后,选择最符合我这种懒人的方法并专注到这件事情上,直到搞定这件事。当然,如果过程较长我会进行分段处理,这样处理问题会比较高效。

对于这个case来说,核心难点就focus到excel宏的程序开发,还好我有些这方面的基础,再加上自己的被迫努力经过一番东拼西凑就搞定了这部分的开发(后来我在百度上找到了一个更为高效的程序代码)。

当然,如果你说你不懂编程怎么办?

不用办,按照我下面的步骤one by one的就能搞定!世界其实没有你想想的那么复杂。

具体步骤如下:

第一步:基础工作准备,请看下图所示的步骤

第二步:在宏编辑器中粘贴下面的代码(在百度上也能搜索到)

Sub 合并当前目录下所有工作簿的全部工作表()

Dim MyPath, MyName, AWbName

Dim Wb As Workbook, WbN As String

Dim G As Long

Dim Num As Long

Dim BOX As String

Application.ScreenUpdating = False

MyPath = ActiveWorkbook.Path

MyName = Dir(MyPath & "" & ".xl")

AWbName = ActiveWorkbook.Name

Num = 0

Do While MyName <> ""

If MyName <> AWbName Then

Set Wb = Workbooks.Open(MyPath & "" & MyName)

Num = Num + 1

With Workbooks(1).ActiveSheet

.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

For G = 1 To Sheets.Count

Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)

Next

WbN = WbN & Chr(13) & Wb.Name

Wb.Close False

End With

End If

MyName = Dir

Loop

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

End Sub

第三步:关闭除“合并文件”的所有excel,然后执行这段代码。

第四步:耐心等待两种结果中的一个,哈哈!

三、总结(百度上是搜不到的)

如果你幸运,上述程序会执行的很顺利,如果报错请不要怀疑你的人生,更不要怀疑这段程序,因为这段程序很健壮很健壮很健壮!

根据我的经验问题通常会出在那些合并的文件中,以下是我总结的几点问题汇总和处理方法。

1.需要合并的源文件里面有多个sheet页,把没用的sheet页给删除后重新执行程序就ok了;

2.需要合并的源文件里的某个字段设置的隐藏功能,找出来取消隐藏后重新执行程序就ok了;

3.需要合并的源文件里的某个sheet页也设置的隐藏功能,找出来取消隐藏后重新执行程序就ok了;

这三点是最常见的问题,大家在程序执行前务必进行必要的检查,检查完毕无误后执行再执行程序,剩下的就是准备一面镜子,欣赏一下自己灿烂的笑容!

如果还有问题,请直接留言,我会进行答疑。

Good luck!

上一篇下一篇

猜你喜欢

热点阅读