什么是宏?新人入门必须要了解6个宏的使用场景



excel函数与vba实例 2018-06-17 13:22:39

在日常的工作中,数据处理的时候有大一部分是一些常规和繁琐的操作,这个时候我们经常会想到如何去简化我们这些操作,这就需要我们运用到Excel内置的宏功能,他可以帮我们以最快的速度来处理我们日常最简单和繁琐的工作。下面我们就来学习一下新手入门必须要了解的几个常见。

一、什么是宏?

我们先来看一下什么是Excel中的宏?

假设我们的Excel有一个任务:在C列值的基础上加上B列的值。

  1. 选取B列并复制
  2. 选取C列右键 - 选择性粘贴 - 加

就这样这么一个简单重复的工作,如下图:

什么是宏?新人入门必须要了解6个宏的使用场景

如上,你在Excel中进行的一系列的操作过程,就是一个宏。操作过程(宏)可以是一步也可以是若干步,使用一个Excel命令或多个Excel命令。

宏,我们也可以看成是一个个可以完成特定目标的功能

二、为什么学习宏?

Excel提供了很多功能,可以完成各种操作。筛选数据有自动筛选和高级筛选,汇总数据有分类汇总、数据透视表等.......

什么是宏?新人入门必须要了解6个宏的使用场景

但....还是有Excel无能为力的时候。比如:

  • 批量取消工作表隐藏
  • 批量合作多个工作表或Excel文件
  • 批量......

有办法。就是Excel中没有的功能,我们自已添加,也就是我们自已编写可以完成指定功能的宏。就象Excel内置功能一样,可以供我们随时使用。

三、怎么编写宏

有一种语言,它的名称叫VBA(visual baisic for application),它是Excel所支持的开发语言,也就是说,我们可以用VBA语言来编写我们需要的功能(宏),除此之外,我们还可以用VBA来编写Excel函数。

四、在哪编写宏

有一个窗口,都叫它VBE编辑器。你可以在工作表标签上右键菜单中点击”查看代码“,就可以打开它。更多的是我们通过”开发工具“选项卡打开这个界面。

什么是宏?新人入门必须要了解6个宏的使用场景

需要什么功能,就可以编写什么功能,需要什么函数,就可以编写什么函数,工作中再也没有我们完不成的任务。

五、新手入门必须要了解的6个宏的使用场景

1、禁止插入工作表

Private Sub Workbook_NewSheet(ByVal Sh As Object)

MsgBox "本工作簿禁止插入新工作表"

Application.DisplayAlerts = False

Sh.Delete

Application.DisplayAlerts = True

End Sub

2、禁止打开Excel文件

Private Sub Workbook_BeforePrint(Cancel As Boolean)

MsgBox "此excel文件禁止打印,如需打印请与管理员联系"

Cancel = True

End Sub

3、在VBA中调用Vlookup和Sumif函数

Sub 调用1()

Dim arr, arr1

arr = Range("a2:d6")

arr1 = Application.VLookup(Array("B", "C"), arr, 4, 0)

End Sub

Sub 调用2()

Dim T

T = Timer

Dim arr

arr = Application.SumIf(Range("a2:a10000"), Array("B", "C", "G", "R"), Range("B2:B10000"))

MsgBox Timer - T

Stop

End Sub

4、批量取消工作表隐藏

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

5、拆分表格成单独的Excel文件

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

6、合并多个Excel文件到一个Excel中

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 Su

根据上面的不同场景,我们可以在代码编辑窗口输入后可以实现我们特定的功能。所以说学会宏的功能和操作,我们可以更加简单的来处理我们的日常工作内容。


0