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

Excel VBA(宏)的功能?

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

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

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

注意

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

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

動(dòng)畫演示:

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ù)模板批量生成日?qǐng)?bào)表

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

image.png

代碼:

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)耐心等待)

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、合并多個(gè)Excel文件工作表到一個(gè)文件中

3月文件夾下有N張報(bào)表,要求把該文件夾中所有excel文件的第1個(gè)工作表合并到當(dāng)前的excel文件中,以單獨(dú)的工作表存放。

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ù)查找其他問題的答案?

回復(fù)(0)
返回頂部