職場懶人生存手冊:怎樣彙集周報
曾經回答過一個「你能懶成什麼樣」的問題,談到了一些簡單的宏命令。結果貌似很多朋友對怎麼樣利用好辦公軟體在職場偷懶很有興趣。作為一個懶癌晚期,我打算分享一些我的工作方式(以便懶癌擴散……)。
然而我的工作方式未必是所有人都能實用的,所以最適合自己的工作方式,還是要自己去感悟。今天我先談一個常見的場景「怎樣把一文件夾的excel彙集到一個工作簿」
下圖是我上周收到的部分周報(僅用部分作為案例):
每一頁周報都有一頁表單需要填寫。既然每個人都只有一頁,那領導就會要求我們ctrl+c/v,把這一文件夾的東西複製成一個工作簿便於查看……大概就是這個樣子:
真是個蛋疼的領導,為啥不用OA呢?不過既然領導有要求,那我們只需要照做就行了。這時候勤勞勇敢的文員妹紙的滑鼠已經按耐不住了,毫不猶豫的打開了一個個工作簿開始了緊張忙碌的複製粘貼過程,而懶癌患者此刻還在淡定的刷知乎。
有些朋友一定好奇為什麼我還沒被老闆從窗戶里丟出去,其實是因為我在拿到整個文件夾的時候我已經整理完成,總耗時約5秒。
來看看我是怎麼操作的:
首先新建一個excel表,按alt+f11,這時候就會出現邪惡的vba編輯窗口。只需要穿過這個窗口各位就可以簽訂契約成為馬猴燒酒了……(好像有點不對……)。
不用想太多,跟著我的滑鼠新建一個「類模塊」,不用考慮這是什麼,只要簽訂契約就可以了。然後跟著我選中「模塊1」,在右邊的窗口裡複製第一段代碼:
以下代碼可以直接複製:
SubUnionWorksheets()
Application.ScreenUpdating= False
Dim lj As String
Dim dirname AsString
Dim nm As String
lj = ActiveWorkbook.Path完整路徑
nm =ActiveWorkbook.Name 表格名字
dirname = Dir(lj& "*.xlsx") 表格名稱思密達
Do While dirname<> ""
If dirname<> nm Then
Workbooks.OpenFilename:=lj & "" & dirname
Workbooks(nm).Activate 讀取表格
Worksheets.Add 插入個新sheet
Workbooks(dirname).Sheets(1).UsedRange.CopySheets(1).Range("A65536").End(xlUp).Offset(1, 0) 這行就是複製到剛插入的第一張表
Sheets(1).Name =dirname 每一頁起名字咯,按照文件名起
Workbooks(dirname).CloseFalse
End If
dirname = Dir
Loop
End Sub
不要問我為什麼這麼多換行,因為我喜歡古龍的文風……(被拖走)。Ctrl+s保存後即可使用了——啥?怎麼使用?最簡單的方法就是做一個按鈕,步驟如下:
1、在工具欄點右鍵,選擇自定義功能區;
2、把這個「開發工具」打勾,點確定。
3、在開發工具裡面找到插入-表單控制項,第一個就是按鈕,選中了之後再表格里放一個。
4、選中剛才標題的那個宏,然後點確定就會有個按鈕了。至於按鈕上面要顯示什麼字,可以右鍵點這個按鈕選擇編輯文本即可,不再贅述啦。
至此,內容就應該完成了。然而懶癌患者是不會止步於此的,接下來我們要思考下一個問題:領導如果要看到這個工作簿,那必然還要知道「究竟哪些分公司沒有上交周報」。
所以我們要思考在領導之前,先設計一個點名表: 和剛才一樣,再搞一個宏,順便搞個按鈕:
Sub 提取所有工作表名稱()
Range("A1:A99").Clear清空區域
For x = 1 To Sheets.Count - 1 循環次數=總共有多少頁-1
Cells(x, 1) = Sheets(x).Name 在第1列的第X行顯示第X張表的名字
Next x 下一個
End Sub
等我寫到這裡的時候,勤勞勇敢的文員小妹似乎還沒有弄完。而懶癌晚期患者此刻依然刷著知乎還提交了一份超過領導預期的表單。誒,誰叫她不來賣萌呢~(攤手)
推薦閱讀: