excel為我們提供了很多好用的功能和函數(shù),但還是有很多工作無(wú)法用現(xiàn)有功能和函數(shù)批量完成,比如多個(gè)excel表格的合并與拆分。而借助VBA語(yǔ)言編寫的宏代碼,這些看似無(wú)法批量處理或無(wú)法完成的事情,瞬間變得只是小菜一碟,也許你不懂VBA,也建議先收藏起來(lái)這些代碼備用。 (第1個(gè)示例中,演示了VBA代碼的使用方法,后面示例均和第1個(gè)類似,不再具體演示) 1、一次取消所有工作表的隱藏 Excel可以一次隱藏多個(gè)工作表,但取消工作表隱藏卻需要一個(gè)個(gè)的設(shè)置,用VBA編寫一段代碼,一秒完成! 注意
動(dòng)畫演示: 代碼: Sub 取消隱藏() For x = 1 To Sheets.Count If Sheets(x).Name <> '總表' Then Sheets(x).Visible = -1 End If Next x End Sub Sub 隱藏() For x = 1 To Sheets.Count If Sheets(x).Name <> '總表' Then Sheets(x).Visible = 0 End If Next x End Sub 2、根據(jù)模板批量生成日?qǐng)?bào)表 根據(jù)模板批量生成報(bào)表,沒什么好方法,只能一個(gè)一個(gè)的復(fù)制然后修改名稱。但這對(duì)VBA來(lái)說(shuō),只需點(diǎn)一下按鈕即可瞬間完成。 代碼: Sub 生成報(bào)表() Dim x As Integer Dim sh As Worksheet For x = 1 To 31 Set sh = Sheets.Add With sh .Name = x & '日' Sheets('日?qǐng)?bào)模板').Range('1:15').Copy sh.Range('A1') End With Next x End Sub 3、拆分工作表為單獨(dú)的excel文件 把當(dāng)前excel文件中除第1個(gè)工作外的所有工作表,均保存為單獨(dú)的excel文件到3月文件夾中。 拆分演示(在拆分過程中會(huì)畫面會(huì)停幾秒,請(qǐng)耐心等待) 代碼: Sub 拆分表格() Dim x As Integer Dim wb As Workbook Application.ScreenUpdating = False For x = 2 To 32 Sheets(x).Copy Set wb = ActiveWorkbook With wb .SaveAs ThisWorkbook.Path & '/3月/' & Sheets(x).Name & '.xlsx' .Close True End With Next x Application.ScreenUpdating = True End Sub 4、合并多個(gè)Excel文件工作表到一個(gè)文件中 3月文件夾下有N張報(bào)表,要求把該文件夾中所有excel文件的第1個(gè)工作表合并到當(dāng)前的excel文件中,以單獨(dú)的工作表存放。 代碼: Sub 合并表格() Dim mypath As String Dim f As String Dim ribao As Workbook Application.ScreenUpdating = False mypath = ThisWorkbook.Path & '/3月/' f = Dir(ThisWorkbook.Path & '/3月/*.xlsx') Do Workbooks.Open (mypath & f) With ActiveWorkbook .Sheets(1).Move after:=ThisWorkbook.Sheets(Sheets.Count) End With f = Dir Loop Until Len(f) = 0 Application.ScreenUpdating = True End Sub 蘭色說(shuō):從事財(cái)務(wù)、成本核算、數(shù)據(jù)分析等崗位的同學(xué),如果有時(shí)間一定要學(xué)學(xué)VBA編程,學(xué)會(huì)后你就知道它可以幫你提高數(shù)倍的工作效率。另外新手看VBA如天書,其實(shí)入門后就沒那么神秘了。多長(zhǎng)時(shí)間能入門?如果有人指導(dǎo),一個(gè)月時(shí)間足夠! |
|
來(lái)自: L羅樂 > 《數(shù)據(jù)匯總》