上一节,我介绍了Excel三大对象的属性和方法,并用一个程序介绍了VBA如何操作对象。
这一节,我继续用简单通俗的话,来介绍 Excel 对象事件,并提供2个实用的VBA程序:聚光灯和欢迎窗。
Excel 对象事件
举一个简单的例子,你就懂了什么是Excel对象的事件。
工作簿这个对象被打开,这就是工作簿对象的一个事件。
针对这个事件的发生,你可以自定义要做什么。
例如,在这个事件过程中,执行你指定的操作,或者调用一个或多个程序或函数。
事件与一般过程或函数的区别在于:事件无需手动执行,只要条件满足就自动触发执行。
今天我将通过2个简单又非常实用的VBA程序,介绍如何快速学会事件。
实用VBA程序的运行效果
1. 欢迎窗
每次打开工作簿将自动弹出如下欢迎窗:
欢迎窗
2. 聚光灯
在具备聚光灯程序代码的工作表内,选择任意的单元格,其对应行和列都将高亮为黄色。更换选择单元格,聚光灯会跟随选择的单元格移动。在表格比较大、内容比较多的时候,就能快速查看到所选单元格对应的行或列中的其他内容。非常方便。
聚光灯
VBA程序代码
1. 欢迎窗程序:将下面的代码贴入Thisworkbook。
Thisworkbook 代码
2.聚光灯程序:将下面的代码贴入Sheet1。
Sheet1 代码
'欢迎窗程序
'打开工作簿后触发执行:
Private Sub Workbook_Open()
'弹出消息框,提示如下信息
MsgBox "你好!" & Environ("username") & vbCrLf _
& "现在是" & Format(Now, "yyyy年mm月dd日 hh:mm aaaa") & vbCrLf _
& "您已打开文件:" & ThisWorkbook.Name & vbCrLf _
& "当前工作表:" & ActiveSheet.Name & vbCrLf
End Sub
' 聚光灯程序:
Private rngPreSelection As Range
' 工作表选择对象变化后触发执行:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
' 开启聚光灯效果:
' 先删除先前的聚光灯
' 消除先前选择单元格所在列的背景色
Columns(rngPreSelection.Column).Interior.Pattern = xlNone
' 消除先前选择单元格所在行的背景色
Rows(rngPreSelection.Row & ":" & rngPreSelection.Row).Interior.Pattern = xlNone
' 开启新的聚光灯
' 设置当前选择单元格所在列的背景色=黄色
Columns(Target.Column).Interior.Color = 65535
' 设置当前选择单元格所在行的背景色=黄色
Rows(Target.Row & ":" & Target.Row).Interior.Color = 65535
' 记录当前选择单元格
Set rngPreSelection = Target
End Sub
结语
亲手练习一下上面的欢迎窗和聚光灯程序,就可快速掌握Excel VBA 的事件。
你学会了吗?
待续。
<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=7479054817210417702"></script>