前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Excel VBA事件

Excel VBA事件

作者头像
xyj
发布于 2020-07-28 03:25:13
发布于 2020-07-28 03:25:13
1.6K01
代码可运行
举报
文章被收录于专栏:VBA 学习VBA 学习
运行总次数:1
代码可运行

1、事件:

事件,和日常生活中的差不多,就是发生了什么事情。

在Excel里,能发生的事件很多:

  • 打开、关闭工作簿
  • 新建工作簿
  • 新建工作表
  • 激活工作表
  • 选择单元格
  • 单元格改写
  • …………

这些都是事件,其实就是平时手动操作Excel的一些动作。

在Excel VBA里提供了接口,在发生这些事件之前或者之后,让使用者可以设置一段运行的程序。

比如双击打开工作簿,可以设置运行一段程序:

上面就是一个工作簿打开事件,运行一段程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Private Sub Workbook_Open()
    MsgBox "工作簿打开了"
End Sub

这种格式是固定的,必须按照这种模式,Excel VBA才能识别它为一个事件,所以为了避免使用者手动输入而造成的错误,Excel VBA提供了下拉选项让使用者直接选择。

左边是选择事件的主体(Workbook),右边是这个主体具有的事件。

2、代码存放的地方:

以前写的代码都是插入一个模块,在模块里编写代码。

Excel文件一旦创建,就已经创建好了几个特殊的模块:ThisWorkbook、Sheet1(有几个工作表就会有几个Sheet#模块)。这几个模块也可以像普通的模块一样编写代码,但是一般都是存放一些事件代码,像上面的Workbook_Open,是必须放在ThisWorkbook模块里面才会有效果的。

通过名称也能大概猜到:

  • 工作簿的事件代码,必须存放在ThisWorkbook模块
  • 工作表事件的代码,必须存放在对应的Sheet#模块

这里所说的代码存放不是说一定是所有需要的代码,只是那个过程的名称必须存放在对应的模块,中间仍然可以调用普通模块的函数或者过程,而这些函数或者过程的代码可以存放在普通的模块中。

3、事件的作用:

个人认为,事件代码的作用仅仅是为了一些操作上的方便,而对于数据处理来说,作用不大。

而且事件用的不恰当,会影响Excel的运行效率,刚接触事件的可能会觉得比较好玩,建议事件的使用场所是在一些比较简单的表格里,一旦数据运算非常复杂了,尽量不要去使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.1K0
ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
yhd-ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
哆哆Excel
2022/10/25
4470
ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
Excel 宏编程的常用代码
我们常用Excel统计一些数据,如果善用VBA,就能自动做出各种复杂的报表,懒人就是追求一劳永逸!不过,也不是真懒啦,只是用智慧(脑力劳动)将自身从体力劳动中解放出来而已,人类也是这样进步的。我有这样的感觉,就是每见到一个语句或函数,都会激发出偷懒的灵感来,哈哈,很自恋了,其实好玩而已。
全栈程序员站长
2022/06/30
2.8K0
一起学Excel专业开发21:Excel工时报表与分析系统开发(3)——自定义用户界面
一起学Excel专业开发20:Excel工时报表与分析系统开发(3)——自定义用户界面
fanjy
2019/11/07
2K0
一起学Excel专业开发21:Excel工时报表与分析系统开发(3)——自定义用户界面
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
在前面的一系列主题中,你已经学到了很多小的修改工作簿外观的VBA代码。下面,我们将介绍一个简单的示例程序,实现下面的功能特点:
fanjy
2021/03/26
2.5K0
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
Excel VBA编程教程(基础一)
说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。基本上,能用鼠标和键盘能做的事情,VBA 也能做。
全栈程序员站长
2022/08/11
13.6K0
Excel VBA编程教程(基础一)
ChatGPT与Excel结合_编写VBA宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
天天Lotay
2023/10/15
8230
ChatGPT与Excel结合_编写VBA宏
代替VBA!用Python轻松实现Excel编程(文末赠书)
面向Excel数据处理自动化的脚本编程,目前主要有VBA和Python两种语言可供选择。
小F
2023/01/03
6K0
代替VBA!用Python轻松实现Excel编程(文末赠书)
Excel中VBA编程学习笔记(一)「建议收藏」
Form1.Width = 300 : Form1.Caption = “VB!”
全栈程序员站长
2022/09/05
1K0
循环语句For each...next语句
大家好,前面已经介绍过循环结构的for..next和do...loop系列语句。还有一种用于处理对象集合的循环语句,即for each...next语句,在本节介绍。(下面程序控制结构图帮助回顾)
无言之月
2019/10/13
2.2K0
一起学Excel专业开发18:Excel工时报表与分析系统开发(2)——创建特定应用加载宏(续)
图1所示的自定义工具栏中的第一个按钮的作用是将工时输入工作簿的副本保存到合并区,其代码如下:
fanjy
2019/10/22
1.3K0
一起学Excel专业开发18:Excel工时报表与分析系统开发(2)——创建特定应用加载宏(续)
VBA: 为worksheet 设置密码和解除密码
文章背景: 在工作中,有时候需要给工作表的的内容设置保护,避免数据被误修改,同时又希望可以通过宏命令,实现数据处理的自动化。此时,我们可以在宏命令中添加相应的代码:在程序执行前,解除密码;在程序结束后,设置密码。
Exploring
2023/08/17
2.9K0
VBA: 为worksheet 设置密码和解除密码
VBA进阶:SortedList详解之基础
在VBA中,有一些用于存储数据的对象,例如字典、集合、数组、ActiveX组合框、ActiveX列表框、用户窗体组合框、用户窗体列表框、ArrayList等,SortedList也是其中的一种,它是一个集合对象,可用于存储任意类型的数据,包括数字、字符串、日期、数组、单元格区域、变量和对象。
fanjy
2019/12/24
3.8K0
Excel事件示例(二)
Excel工作表中有时有单元格的值希望被锁定,输入密码后才能修改,通常我们使用”审阅“的“保护工作簿”功能来实现,那下面通过vba代码也来实现一下。
无言之月
2019/10/13
1K0
Vba菜鸟教程[通俗易懂]
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/overview/language-reference 代码完成后:工具-vbaproject属性-保护-查看时锁定-密码
全栈程序员站长
2022/09/05
17.6K0
Vba菜鸟教程[通俗易懂]
ExcelVBA汇总-多簿一表_to_一簿一表
哆哆Excel
2023/09/09
3060
ExcelVBA汇总-多簿一表_to_一簿一表
Excel编程周末速成班第21课:一个用户窗体示例
引言:这是在知识星球App的完美Excel社群中发表的Excel VBA编程系列文章中的一篇,使用一个示例来讲解用户窗体的基础应用。
fanjy
2021/01/20
6.4K0
Excel编程周末速成班第21课:一个用户窗体示例
VBA对象变量
大家好,前面介绍了vba中两个主要的对象,单元格range对象和工作表worksheet对象,以及它们的属性和方法。
无言之月
2019/10/13
2K0
VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表
【问题】我们发了这样一个表格到各单位收集资料,各单位填写完后上交上来有许多个文件,我们现在想汇总成一年一个表,怎么办?
哆哆Excel
2022/10/25
2.4K0
VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表
Excel VBA对象模型
上一讲说了Range对象,这一次我们从总体方面来说一下Excel VBA的对象模型。
xyj
2020/07/28
2.4K0
Excel VBA对象模型
相关推荐
EXCEL VBA语句集300
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档