​​Excel技巧,Excel VBA 事件过程实现数据变化结果也会随之自动更新!

​​​​Excel技巧,Excel VBA 事件过程实现数据变化结果也会随之自动更新!

 

 

我们知道,在Excel中进行公式运算时,随着单元格数据的变化,公式单元格中的结果也会随之自动更新,如下面简单的演示。 Excel VBA中有⼀类称作“事件”的过程程序,能够对我们的操作⾃动作出相应的响应。

我们知道,在Excel中进行公式运算时,随着单元格数据的变化,公式单元格中的结果也会随之自动更新,如下面简单的演示。

006fRELkly4h3n3c8jmmig30cu04n3z5

Excel VBA中有一类称作“事件”的过程程序,能够对我们的操作自动作出相应的响应。例如,每次打开工作簿时,自动弹出一个设定好的信息框。

这是响应工作簿的Open事件,即在打开工作簿时Excel所发生的行为。

在VBE编辑器中,单击工作簿或者工作表模块,然后在代码输入窗口顶部左侧列表框中选择工作表对象名,在右侧列表框中会出现供选择的相应的事件。通常,在左侧列表框中选择对象名后,Excel会自动在代码输入窗口中放置默认的事件,如工作表的SelectionChange事件。

事件响应所执行的操作就是我们在事件过程中放置的代码,这些代码规定了我们希望事件发生时要做什么。

在《Excel实战技巧8:基于当前单元格实时显示相关数据记录》中,当用户在工作表第1列含有数据的单元格中移动时,会自动弹出一个窗体,并显示该单元格所在行的详细信息。

这里就是使用了工作表的SelectionChange事件,其代码如下:

Dim lngRow As Long

Private SubWorksheet_SelectionChange(ByVal Target As Range)

Dim rngBottom As Range

With wksUserInfo

'查找列A中最后使用的单元格

Set rngBottom = .Range("A"& .Rows.Count).End(xlUp)

End With

'卸载原来的用户窗体

If lngRow <> Target.Row Then

Unload ufmUser

End If

'当前单元格位于第1列且具有数据时才显示用户窗体

If Target.Column = 1 And Target.Row > 1 And Target.Row <=rngBottom.Row Then

ufmUser.Show 0 '无模式窗体

End If

'填充用户窗体

'在工作表单元格发生改变后能实时反映到用户窗体中

ufmUser.PopulateRecord

'更新用户窗体显示

'当活动单元格变化后,显示该单元格所在行的内容

lngRow = Target.Row

End Sub

注意到,事件过程含有参数,允许将相应的值通过参数传递给事件过程。例如本例中的参数Target,将当前单元格传递到过程。

有时候,一个事件可能触发其他事件,包括该事件本身,从而带来连锁反应。例如,修改工作表单元格中的数据时,会触发Worksheet_Change事件,此时如果事件中的代码修改了另一个单元格中的数据,那么会再次触发该事件,再该事件会再次修改单元格,这引起事件的又一次触发,如此反复循环。这往往不是我们所需要的。

可以使用:

Application.EnableEvents = False

临时禁止触发事件,从而防止发生这类情形。当达到目的后,再重新启用触发事件:

Application.EnableEvents = True

例如:

Private Sub Worksheet_Change(ByValTarget As Range)

Application.EnableEvents = False

If Target.Column = 1 Then

Range("C1") = Target.Value

End If

Application.EnableEvents = True

End Sub

Excel定义了与工作簿对象、工作表对象等相关的一系列事件,还可以使用VBA自定义事件。一般来说,常使用的Excel事件有:

Excel应用程序事件,即根据Excel本身的操作来响应的事件,例如响应新建工作簿的NewWorkbook事件。

工作簿事件,即根据操作工作簿的动作来响应的事件,例如打开工作簿的Open事件。

工作表事件,即根据操作工作表的动作来响应的事件,例如选取工作表单元格变化时的SelectionChange事件。

图表事件,即操作图表时响应的事件,例如激活图表时的Activate事件。

 

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

电商数据分析360°实战攻略!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>