excel函数与vba实例 2018-06-17 13:22:39
在日常的工作中,数据处理的时候有大一部分是一些常规和繁琐的操作,这个时候我们经常会想到如何去简化我们这些操作,这就需要我们运用到Excel内置的宏功能,他可以帮我们以最快的速度来处理我们日常最简单和繁琐的工作。下面我们就来学习一下新手入门必须要了解的几个常见。
一、什么是宏?
我们先来看一下什么是Excel中的宏?
假设我们的Excel有一个任务:在C列值的基础上加上B列的值。
就这样这么一个简单重复的工作,如下图:
如上,你在Excel中进行的一系列的操作过程,就是一个宏。操作过程(宏)可以是一步也可以是若干步,使用一个Excel命令或多个Excel命令。
宏,我们也可以看成是一个个可以完成特定目标的功能
二、为什么学习宏?
Excel提供了很多功能,可以完成各种操作。筛选数据有自动筛选和高级筛选,汇总数据有分类汇总、数据透视表等.......
但....还是有Excel无能为力的时候。比如:
有办法。就是Excel中没有的功能,我们自已添加,也就是我们自已编写可以完成指定功能的宏。就象Excel内置功能一样,可以供我们随时使用。
三、怎么编写宏
有一种语言,它的名称叫VBA(visual baisic for application),它是Excel所支持的开发语言,也就是说,我们可以用VBA语言来编写我们需要的功能(宏),除此之外,我们还可以用VBA来编写Excel函数。
四、在哪编写宏
有一个窗口,都叫它VBE编辑器。你可以在工作表标签上右键菜单中点击”查看代码“,就可以打开它。更多的是我们通过”开发工具“选项卡打开这个界面。
需要什么功能,就可以编写什么功能,需要什么函数,就可以编写什么函数,工作中再也没有我们完不成的任务。
五、新手入门必须要了解的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
根据上面的不同场景,我们可以在代码编辑窗口输入后可以实现我们特定的功能。所以说学会宏的功能和操作,我们可以更加简单的来处理我们的日常工作内容。