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