Excel VBA解读(81):工作表事件示例

 

给出了一些工作表事件示例,以加深对工作表事件的理解,方便应用。...



微信公众号:excelperfect

本文系因违规而删除的2017年11月4日推送文章经修改后重新推送,已看过的朋友可直接飘过,免得浪费时间。



本文再列举一些示例,以加深对工作表事件的理解,方便应用。

示例1:阻止用户修改指定单元格区域的数据

当用户修改工作表中指定单元格区域的数据时,给出提示信息并改回为原数据。

代码如下:

Dim data

Private Sub Worksheet_Change(ByValTarget As Range)

If Not Intersect(Target, Range("A1:C3")) Is Nothing Then

MsgBox "该区域数据重要,请不要修改!"

Application.EnableEvents = False

Target.Value = data

Application.EnableEvents = True

End If

End Sub

Private Sub Worksheet_SelectionChange(ByValTarget As Range)

data = Target.Value

End Sub

运行效果如图1所示。



图1

示例2:让不同的工作表有不同的快捷菜单

在工作表“完美Excel”中,单击右键会出现属于该工作表的快捷菜单,同样,在工作表“Data”中单击右键也会出现属于该工作表的快捷菜单。如下图2所示。



图2

实现上述效果的代码如下。

在“完美Excel”工作表代码模块的BeforeRightClick事件中,输入下面的代码:

Private SubWorksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim cmb_excelperfect As CommandBar

Set cmb_excelperfect = CreateSubMenu("完美Excel")

Cancel = True

cmb_excelperfect.ShowPopup

End Sub

在“Data”工作表代码模块的BeforeRightClick事件中,输入相似的代码:

Private SubWorksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim cmb_data As CommandBar

Set cmb_data = CreateSubMenu("数据处理")

Cancel = True

cmb_data.ShowPopup

End Sub

插入一个标准模块,并输入下面的代码:



示例3:双击单元格时显示输入框

在双击工作表第1列中的单元格时,会显示下图3所示的自定义输入框。


图3

在其中输入相应的数据后,单击“输入”即将数据输入到双击的单元格所在行的第1至3列所在的单元格。如图4所示。



图4

实现上述效果的代码如下。

插入一个标准模块,并声明一个全局变量。

Global lngRow As Long

创建一个如图3所示的用户窗体,窗体名及相应的控件名如图3所示。代码如下:

Private Sub cmdEntry_Click()

Cells(lngRow, 1).Value = txtXM

Cells(lngRow, 2).Value = txtXB

Cells(lngRow, 3).Value = txtCJ

End Sub

在工作表代码模块中,输入下面的代码:

Private SubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 1 Then

Cancel = True

lngRow = Target.Row

ufmTest.Show

End If

End Sub

示例4:根据比较结果自动显示上升或下降的箭头

这是Bill Jelen提供的一个例子。如图5所示,比较两年同一个月份的利润。若利润上升,将在月份下面显示向上的红色箭头,如果利润下降,则在月份下面显示向下的绿色箭头。


图5

使用了工作表的Calculate事件,代码如下:



在我们前面的文章中,也介绍过一些工作表事件的示例,你可以参照学习理解。

工作表事件为Excel自动化打开了一扇明亮的窗,有很多有用的应用,以后的文章中会穿插讲解。

你有什么好的工作表事件应用实例吗?欢迎分享。

本文为原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎关注[完美Excel]微信公众号:

方法1—在微信“添加朋友”或者通讯录中搜索“完美Excel”或者“excelperfect”后点击关注。

方法2—扫一扫下面的二维码


    关注 完美Excel


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册