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

Excel VBA事件

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

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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2
Excel已经为我们准备好了编写VBA代码的编辑器,让我们非常方便地编写、运行和调试、保存VBA代码。
fanjy
2022/06/04
4K0
探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.4K0
Excel VBA编程
VBA对象模型和对象引用
EXCEL中的各种对象并不是孤立存在的,彼此之间都是有联系和层级关系,对象模型的概念就是用来描述对象之间关系的,构建了一个完整的体系。
无言之月
2019/10/14
2.3K0
VBA对象模型和对象引用
VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡
不能够单独隐藏内置组中的内置控件。然而,可以隐藏内置组,因此会隐藏该组中的所有控件。可以单独禁用(和启用)组中的控件。
fanjy
2021/03/12
8.3K0
Excel事件(三)工作簿事件
大家好,上节介绍工作表事件,本节将介绍工作簿事件,工作簿数量较多,但并没有工作表事件常用,只简单介绍几个常用的工作簿事件。
无言之月
2019/10/13
2.3K0
Excel VBA事件——Worksheet
这个事件的有个比较典型的应用场景,选择改变后,将选择的单元格所在行标上颜色,也就是所谓的聚光灯:
xyj
2020/07/28
3.3K0
Excel VBA事件——Worksheet
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
在前面的一系列主题中,你已经学到了很多小的修改工作簿外观的VBA代码。下面,我们将介绍一个简单的示例程序,实现下面的功能特点:
fanjy
2021/03/26
2.5K0
VBA专题10-25:使用VBA操控Excel界面之一个示例程序
Excel VBA事件——Workbook
这两个事件在Office2007版本之前使用应该还是比较多的,那时候还没有Ribbon菜单,菜单是下拉式的,也就是和VBA编辑器菜单是一样的。
xyj
2020/07/28
1.2K0
Excel VBA编程教程(基础一)
说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。基本上,能用鼠标和键盘能做的事情,VBA 也能做。
全栈程序员站长
2022/08/11
13.6K0
Excel VBA编程教程(基础一)
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
Excel VBA对象模型
上一讲说了Range对象,这一次我们从总体方面来说一下Excel VBA的对象模型。
xyj
2020/07/28
2.4K0
Excel VBA对象模型
Excel实战技巧78: 创建个人宏工作簿
个人宏工作簿是一个文件,可以在应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人宏工作簿很简单,如下所示。
fanjy
2020/05/25
3.2K0
Excel实战技巧78: 创建个人宏工作簿
VBA小技巧06: 一句代码限定工作表可编辑单元格
有时候,一条小小的代码能够起到很好的效果。例如,我们希望仅能编辑工作表中的指定区域,其他区域不可编辑,只有一些控件能够操作,一些VBA代码能够在后台运行,如下图1所示。
fanjy
2020/04/20
1.3K0
VBA 在 Excel 中的常用操作
设置单元格 Value 里使用 Chr(10) 和 Chr(13),分别表示回车、换行。
mzlogin
2020/04/16
4K0
Python办公自动化 | excel读取和写入
python在办公自动化领域应用广泛,本文学习一下如何使用python读取和写入excel。EXCEL读取和写入可以用到两个包:xlrd 和 xlwt。
披头
2020/01/14
1.5K0
Python办公自动化 | excel读取和写入
ChatGPT与Excel结合_编写VBA宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
天天Lotay
2023/10/15
8230
ChatGPT与Excel结合_编写VBA宏
Excel事件(一)基础知识
大家好,本节开始将介绍excel事件的内容。前面介绍过的application主程序对象的ontime方法和onkey方法,也是一类的Excel事件。下面正式开始课程。
无言之月
2019/10/13
2.3K0
仿Excel的撤销功能
这是在www.vbaexpress.com中看到的一个示例,实现了自己以前想做而未做的事情。
fanjy
2024/05/13
2250
仿Excel的撤销功能
VBA实战技巧32:安装Excel加载宏
我们知道,有多种方法可以进入“Excel加载宏”对话框。最简单的就是,单击功能区“开发工具”选项卡“加载项”组中的“Excel加载项”,即可打开如下图1所示的的“加载宏”对话框。
fanjy
2021/08/31
5.9K0
VBA实战技巧32:安装Excel加载宏
VBA: 禁止单元格移动,防止单元格公式引用失效(2)
文章背景: 在Excel中,公式引用无效单元格时将显示 #REF! 错误。当公式所引用的单元格被删除或被粘贴覆盖时最常发生这种情况。
Exploring
2022/09/20
1.3K0
相关推荐
探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验