分分鐘我把1200個Excel文件合并成了一個!

在實際的工作中,累到吐血的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!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容