位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

Excel VBA(宏)的功能?

提問人:周麗平發(fā)布時間:2021-07-10

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

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

注意

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

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

動畫演示:

image.png

代碼:

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ù)模板批量生成日報表

根據(jù)模板批量生成報表,沒什么好方法,只能一個一個的復制然后修改名稱。但這對VBA來說,只需點一下按鈕即可瞬間完成。

image.png

代碼:

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月文件夾中。

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

image.png

代碼:

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文件中,以單獨的工作表存放。

image.png

代碼:

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

繼續(xù)查找其他問題的答案?

回復(0)
返回頂部