VBA-宏基本用法
今天就来港下office里最藏在深闺人未识的功能——宏。
一般听说过“宏”的电脑小白们,对“宏”的用法还停留在【录制】,但实际上“宏”是巨硬(Microsoft)为了解决广大欲求不满的Office用户对功能需求而整合到Office套装里的开发环境。它主要有以下三种用法:
1、定义新功能,并赋值到工具栏/表中按钮上
2、自定义新的函数
3、自动化操作(最被广泛使用的功能)
平常小白们用的【录制】就是上面的第三种用法的一部分!
要使用【宏】,最好调出“开发工具”选项卡,不然每次都在“视图”里点那么小个头的按钮、或者用【Alt+F11】打开VB编辑器 都挺麻烦的。
【视图】-宏:
【开发工具】选项卡
Office2007中调出:
Office2010~2016中调出:
都弄粗来之后,就可以开干了。
在VB编辑器的代码区试下输入“哈喽,我的”, 代码内容:
Sub 圣创杂学堂()
MsgBox "Hello, world !"
End Sub
可以直接在ThisWorkbook里,也可以另外加个模块:
可在两个地方点击【运行】,1、代码区:
2、【开发工具】-【宏】-【执行】:
用途01
自定义工具栏按钮功能
用途02
表中按钮功能指派
用途03
自定义新的函数
下面函数是计算输入的第一个参数和今天一共相距多少天/周/月/季度,复制粘贴到代码区:
代码内容:
Public Function YearEnd(inDate As Date, n As Integer)
If Not IsDate(inDate) Then
MsgBox "Please input a date value."
Return
End If
Select Case n
Case 1:
YearEnd = "相距" & DateDiff("D", inDate, Date) & "天"
Case 2:
YearEnd = "相距" & DateDiff("ww", inDate, Date) & "周"
Case 3:
YearEnd = "相距" & DateDiff("m", inDate, Date) & "月"
Case 4:
YearEnd = "相距" & DateDiff("q", inDate, Date) & "季度"
End Select
End Function
用途04
自动化操作
这个也是最为广泛地使用的,最简单的就是【录制】宏,复杂的就是在代码区里写VB代码,然后运行。
蛋素,你先看下录制下来的宏是啥样的:
也就是说,你想用这个宏来照样填充其他单元格是不行滴,它会一直填充B1:B4!
【录制】的宏有两个特点:
【录制】的并不是你的“鼠标键盘操作”,而是Excel内容的更改。(可以看到上面的代码完全没有“时间”延迟,也没有“输入内容”的,而是直接将某个单元格赋值!)
【录制】的宏只适用于在大量相同的表格上进行重复性的操作。因为它会真实地记录你操作的单元格位置(如B1:B4)
那宏的自动化操作就没其他用途了么?
有!
高手们都是用这个功能直接写代码来完成的。鉴于本公众号主要面向不懂编程或者入门级编程爱好者,不深入探究VB语法。
当想要哪些自动化操作时,大家自觉度娘。
微信搜索公众号@圣创杂学堂,即可获取每天更新
原创不易,转载请保留出处。