Excel:你加班 1小時做表格,我用VBA只需1秒種

Excel:你加班 1小時做表格,我用VBA只需1秒種

excel為我們提供了很多好用的功能和函數,但還是有很多工作無法用現有功能和函數批量完成,比如多個excel表格的合併與拆分。而藉助VBA語言編寫的宏代碼,這些看似無法批量處理或無法完成的事情,瞬間變得只是小菜一碟,也許你不懂VBA,也建議先收藏起來這些代碼備用。

(第1個示例中,演示了VBA代碼的使用方法,後面示例均和第1個類似,不再具體演示)

1、一次取消所有工作表的隱藏

Excel可以一次隱藏多個工作表,但取消工作表隱藏卻需要一個個的設置,用VBA編寫一段代碼,一秒完成!

注意

  • 要想使用VBA功能,需要把代碼粘貼到添加的模塊中,詳見動畫演示

  • 要想保存VBA代碼,需要把文件另存為xlsm格式文件,詳見動畫演示

動畫演示:

Excel:你加班 1小時做表格,我用VBA只需1秒種

代碼:


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、根據模板批量生成日報表

根據模板批量生成報表,沒什麼好方法,只能一個一個的複製然後修改名稱。但這對VBA來說,只需點一下按鈕即可瞬間完成。

Excel:你加班 1小時做表格,我用VBA只需1秒種

代碼:


Sub 生成報表()

Dim x As Integer

Dim sh As Worksheet

For x = 1 To 31

Set sh = Sheets.Add

With sh

.Name = x & "日"

Sheets("日報模板").Range("1:15").Copy sh.Range("A1")

End With

Next x

End Sub


3、拆分工作表為單獨的excel文件

把當前excel文件中除第1個工作外的所有工作表,均保存為單獨的excel文件到3月文件夾中。

拆分演示(在拆分過程中會畫面會停幾秒,請耐心等待)

Excel:你加班 1小時做表格,我用VBA只需1秒種

代碼:


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、合併多個Excel文件工作表到一個文件中

3月文件夾下有N張報表,要求把該文件夾中所有excel文件的第1個工作表合併到當前的excel文件中,以單獨的工作表存放。

Excel:你加班 1小時做表格,我用VBA只需1秒種

代碼:


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

End.

運行人員:中國統計網小編(微信號:itongjilove)

微博ID:中國統計網

中國統計網,是國內最早的大數據學習網站,公眾號:中國統計網

//www.itongji.cn

相關推薦

推薦中...