SheetActivate事件
ExcelVBA解读(80):看看工作表会自动响应哪些操作——认识工作表事件

ExcelVBA解读(80):看看工作表会自动响应哪些操作——认识工作表事件我们可以设置在工作表上进行操作时,工作表要做的事情,例如激活某工作表时弹出一个对话框、在单元格之间移动时高亮显示单元格所在的行列,等等。
这就要用到Worksheet对象的事件。
Worksheet对象的事件并不多,共9个,如图1所示。
图1其中,各个事件发生条件为:•Activate事件发生在工作表成为当前活动工作表时•BeforeDoubleClick事件发生在工作表单元格中双击时发生且在默认的双击操作之前•BeforeRightClick事件发生在工作表单元格中右击时发生且在默认的右击操作之前•Calculate事件发生在重新计算工作表后•Change事件发生在工作表单元格被修改后•Deactivate事件发生在转移到并使其他工作表为活动工作表前•FollowHyperlink事件发生在单击工作表中的超链接时•PivotTableUpdate事件发生在更新工作表中数据透视表后•SelectionChange事件发生在改变工作表单元格选择时下面分别详细介绍这些事件。
Activate事件Worksheet_Activate()在工作表成为活动工作表时触发该事件。
Deactivate事件Worksheet_Deactivate()当转移到其他工作表时触发该事件。
示例1:激活当前工作表与转移到其他工作表时的事件响应以工作表Sheet2为例,当激活使工作表Sheet2成为活动工作表时,以及转移到其他工作表时,分别显示相应的消息框。
Private Sub Worksheet_Activate()MsgBox 'Hi!欢迎来到【完美Excel】.', , 'excelperfect'End SubPrivate Sub Worksheet_Deactivate()MsgBox '谢谢你的来访!', , '完美Excel'End Sub代码效果如图2所示。
Spreadsheet说明

Spreadsheet说明1、ActiveCell:返回代表活动单元格的Range只读对象。
2、ActiveSheet:返回代表活动⼯作表的WorkSheet只读对象。
3、ActiveWindow:返回表⽰当前窗⼝的Window对象。
4、ActiveWorkbook:返回表⽰打开⼯作簿的Workbook对象。
5、AllowPropertyToolbox:确定⽤户是否可以在运⾏时显⽰“命令和选项”对话框。
boolean类型。
6、Application:有两种情况, a)应⽤于OWCLanguageSettings对象时,返回表⽰指定Web Component的Obejct对象; b)返回表⽰电⼦表格控件的Spreadsheet对象7、AutoFit:对于Spreadsheet或者PivotTable对象,如果由可见的⾏列数确定电⼦表格的总体⼤⼩,则设置为True。
⾏⾼和列宽不能超过电⼦表格或数据透视表列表的 MaxHeight 和 MaxWidth 属性值。
默认值为 True。
如果将 AutoFit 属性设置为 False,则电⼦表格或数据透视表列表的总体⼤⼩由 Width 和 Height 属性设置。
Boolean 类型8、Build:返回⼀个Long类型,表⽰Web Components的编译号,只读。
9、BuildNumber:返回内部版本号。
String类型,只读。
10、Calculation:返回或设定指定计算模式的XlCalculation常量。
11、CalculationVersion:返回long型的Web Components版本号12、CanUnd如果有可以撤销的前⼀步操作,则返回True。
只读13、Caption:返回或设定对象的标题,string类型14、Cells:返回⼀个表⽰对象中单元格的Range对象15、Columns:应⽤在Range对象上时表⽰返回代表指定区域中列的Range对象,只读。
EXCEL基本事件

第X课EXCEL基本事件1 什么是事件事件是一个对象可以辨认的动作,像单击鼠标或者按下某个键等等,并且可以编写某些代码针对此动作做出响应。
用户做动作或者程序代码的结果都可能导致事件的发生。
在VBA 中,可以激发事件的用户动作包括:切换工作表、选择单元格和单击鼠标等几十种。
事件发生时,将执行包含事件过程中的代码。
若用户没有定义某事件所调用的过程,那么当发生该事件时,就不会产生任何反应。
2 Excel中事件的分类Excel提供了非常多的事件,主要可以分为以下几类:(1)工作簿事件工作簿事件发生在特定的工作簿中,如Open(打开工作簿)、BeforeClose(关闭工作簿之前)和SheetActive(激活任何一张表)等。
工作簿事件的代码必须在Thiswork对象代码模块中编写。
(2)工作表事件工作表事件发生在特定的工作表中,如activate(激活工作表)、change(更改工作表中的单元格)和SelectionChange(工作表上的选定区域发生改变)等。
工作表事件的代码必须在对应工作表的代码模块中编写。
(3)窗体、控件事件新建的用户窗体及窗体上的控件可以响应很多事件,如Click(单击)、Change(控件内容更改)等,这类事件的代码必须编在相应的用户窗体代码模块中。
图表事件图表事件针对某个特殊的图表产生,例如Slect(选中了图表中的某个对象)和SeriesChange(改变了系列中某个数据点的值)。
不与对象关联的事件这类事件只有两个,分别是Online和Okey,根据时间和按钮来产生这两个事件。
3 工作薄事件当工作薄更改,工作薄中任何工作表更改,加载宏更改或数据透视表更改时,都将引发工作薄事件。
若要查看工作薄事件,可以双击“工程资源管理器”(excel工作环境下按组合键“Alt+F11”打开)窗口中的“ThisWorkBook”对象,打开“代码编辑器”窗口,在“过程”下拉列表框中选择事件名称。
Excel开发者模式学习(1)——对象、属性、方法、事件

Excel开发者模式学习(1)——对象、属性、⽅法、事件其实Excel就是触发和指定单元格学习路线⼀、理解⼯作簿、⼯作表、单元格等概念,弄清楚对象、属性⼆、了解软件操作⽅式,⽐如怎么调出开发模式、如何试运⾏等三、掌握常⽤的函数四、触发事件五、熟悉循环的使⽤六、实例操作⼀、概念对象Workbooks:⼯作簿worksheets:⼯作表Range:单元格区域cell:单元格对象就是存在的东西,是VBA处理的内容,包括⼯作薄、⼯作表、⼯作表上的单元格区域、图表等等。
对象可以相互包含,就像⼀个⽂件夹⾥可以包含多个⽂件夹⼀样,⽽这个⽂件夹⼜可以被其他的⽂件夹包含,⼀个⼯作薄对象可以包含多个多个⼯作表对象,⼀个⼯作表对象⼜可以包含多个单元格(或图表,图形等),这种对象的排列模式称为Excel的对象模型。
----------集合这个概念经常遇到,我理解的集合是对相同类型的对象的统称。
某中学有5000个学⽣,名字各不相同,我们对他都统称为某中学的学⽣,⽽不和⼀⼀去叫他们的名字,"某中学的学⽣"在这⾥是集合。
对象的引⽤,在Excel⾥,Workbooks集合包含在Application对象⾥,当我们要引⽤某⼯作薄的时候,要遵循从⼤到⼩的规则。
跟表⽰硬盘⾥的某个⽂件的位置⼀样,⽐如我们想引⽤D盘“我的⽂档”⽂件夹下的名为“我的VBA课程.doc”⽂件时要输⼊的是:D:\我的⽂档\我的VBA课程.doc同样,如果我们要引⽤名称为“mybook.xls”的⼯作薄时就是:Application.Workbooks(“mybook.xls”)和引⽤⽂件不同的是,VBA⾥使⽤的分隔符是点。
同理,当我们引⽤“mybook.xls”⾥⾯的⼯作表“mysheet”时应是:Application.Workbooks(“mybook.xls”).Worksheets(“mysheet”)可以继续延伸到下⼀层,引⽤“mybook.xls”⾥⼯作表“mysheet”⾥⾯的单元格区域“A1:D10”:Application.Workbooks(“mybook.xls”).Worksheets(“mysheet”).Range(“A1:D10”)但是并不是每⼀次引⽤都必须这么呆板,就像猪⼋戒不⽤每⼀次都去爬下⽔管道。
VBA 中的工作表保护与隐藏应用技巧

VBA 中的工作表保护与隐藏应用技巧工作表保护与隐藏的应用技巧在VBA(Visual Basic for Applications)中可以大大提高Excel的数据管理效率。
在进行数据编辑和处理时,有时需要保护某些工作表,以防止他人进行误操作或者更改某些重要的数据。
另外,有时又需要隐藏某些工作表,以保护敏感信息或者简化用户界面。
本文将介绍几种常见的VBA中的工作表保护与隐藏的应用技巧。
首先是工作表保护的应用技巧。
通过在VBA中使用工作表保护功能,我们可以限制对工作表的更改权限,并提高数据的安全性。
以下是一些实用的工作表保护应用技巧:1. 设置工作表保护密码:在VBA中可以使用`Protect`方法来设置工作表保护密码。
例如,使用下面的代码将某个工作表设置为只允许选择和格式化,密码为"123456":```vbaWorksheets("Sheet1").Protect Password:="123456", UserInterfaceOnly:=True, AllowFormattingCells:=True```这样,其他人将无法对该工作表进行编辑和更改,只能选择和格式化单元格。
2. 解除工作表保护:如果需要对已经保护的工作表进行修改,可以使用`Unprotect`方法来解除保护。
例如,使用下面的代码解除对某个工作表的保护:```vbaWorksheets("Sheet1").Unprotect Password:="123456"```注意,解除保护时需要输入正确的密码。
3. 指定允许编辑的区域:有时候我们希望只允许某些区域进行编辑,而其他区域保持锁定。
可以使用`EnableSelection`方法来实现这一功能。
例如,使用下面的代码将某个工作表的A1:B5区域设置为允许编辑:```vbaWorksheets("Sheet1").EnableSelection = xlUnlockedCellsWorksheets("Sheet1").Range("A1:B5").Locked = False```这样,只有A1:B5区域的单元格可以进行编辑,其他单元格将被锁定。
VBA工作薄工作表事件一览表修订稿

V B A工作薄工作表事件一览表集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]翻箱倒柜,无意中发现个好东东放到这里,大家查着也方便工作簿对象事件一览表当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。
工作簿上的事件在默认情况下是可用的。
若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的“查看代码”。
在“过程”下拉列表框内选择事件名称。
事件说明Activate激活工作薄时AddinInstall当工作簿作为加载宏安装时AddinUninstall工作簿作为加载宏卸载时BeforeClose关闭工作薄前BeforePrint打印工作薄(或其中任何内容)之前BeforeSave保存工作薄前Deactivate工作簿从活动状态转为非活动状态时NewSheet在工作簿中新建工作表时Open打开工作簿时PivotTableCloseConnection在数据透视表关闭与其数据源的连接之后PivotTableOpenConnection在数据透视表打开与其数据源的连接之后SheetActivate激活任何一张表时SheetBeforeDoubleClick双击任何工作表时SheetBeforeRightClick鼠标右键单击任一工作表时SheetCalculate工作表重新计算时SheetChange更改工作表中的单元格时SheetDeactivate任一工作表由活动状态转为非活动状态时SheetFollowHyperlink单击 Microsoft Excel 中的任意超链接时SheetPivotTableUpdate数据透视表的工作表更新之后SheetSelectionChange工作簿中的数据透视表更新之后WindowActivate工作簿的窗口激活时WindowDeactivate工作簿的窗口变为非活动状态时WindowResize工作簿窗口调整大小时本示例在打开工作簿时将 Microsoft Excel 窗口最大化。
Excel-事件(Workbook、Worksheet、Range、OnKeyOnTime)

Excel-事件(Workbook、Worksheet、Range、OnKeyOnTime)⼀、Excel事件介绍Excel事件就是⼀个能被对象识别的操作。
当某个事件发⽣后⾃动运⾏的过程称为事件过程。
事件过程也是Sub过程。
实践过程必须写在特定对象所在的模块中,⽽且只有过程所在的模块⾥的对象才能触发这个事件。
事件过程名由Excel⾃动设置,以“对象名称_事件名称”的形式存在,不能更改。
⼆、Worksheet事件Worksheet事件是发⽣在Worksheet对象⾥的事件。
事件过程必须写在对应的Worksheet对象⾥,只有过程所在的Worksheet对象⾥的操作才能触发该事件。
1、Worksheet_Change事件:⾃动提⽰更改的内容Private Sub Worksheet_Change(ByVal Target As Range) '⼊参中Target代表被选中的单元格Application.EnableEvents = False '禁⽤事件If Target.Column = 1ThenMsgBox Target.Address & "单元格的值被修改为:" & Target.ValueEnd IfApplication.EnableEvents = True '启⽤事件End Sub2、Worksheet_SelectionChange事件:你选中了谁可以⽤此事件来记录Excel单元格修改前的旧值。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim oldvalue As StringMsgBox"当前选中的单元格区域为:" & Target.Addressoldvalue = Target.ValueIf Target.Column <> 1ThenCells(Target.Row, "A").SelectEnd IfEnd Sub3、Worksheet_Activate事件:⾃动提⽰⼯作表名Private Sub Worksheet_Activate()MsgBox"当前活动⼯作表为:" & End Sub4、Worksheet_Deactivate事件:禁⽌选中其他⼯作表Private Sub Worksheet_Deactivate()MsgBox"不允许选中" & & "⼯作表外的其他⼯作表"Worksheets("Sheet1").SelectEnd Sub5、Worksheet事件列表Worksheet对象⼀共有9个事件可供使⽤。
7.1 Excel VBA事件

6、鼠标点选文件菜单,单击保存文件。文件名 为【第一个事件程序.xls】。
浙江省普通高中选修课网络课程
EXCEL VBA
编程入门
三、编写一个简单的事件
操作步骤:
7、返回到Excel工作界面,当你单击选中任一张 工作时,就会弹出如下的对话框。
这个事件响应与原先的点选工作表完全不同了!
浙江省普通高中选修课网络课程
简单,写一段事件过程代码即可。
浙江省普通高中选修课网络课程
ห้องสมุดไป่ตู้
EXCEL VBA
编程入门
三、编写一个简单的事件
操作步骤:
1、打开一个新的工作薄文件。 2、按快捷键F11,打开VBE编辑器。 3、在工程资源管理器中点选ThisWorkbook
浙江省普通高中选修课网络课程
EXCEL VBA
编程入门
三、编写一个简单的事件
EXCEL VBA
编程入门
第七章:Excel VBA 事件
7.1 Excel VBA事件
浙江省普通高中选修课网络课程
EXCEL VBA
编程入门
一、什么是Excel VBA事件?
事件简单来说,就是由用户或者系统触发的、
可以在代码中响应的一段代码。在Excel中,我们点
击单元格、点击窗体和按钮、选择工作表、保存工 作薄等等都会产生一系列的事件。我们可以通过编 写代码来响应这些事件,当发生此类事件时,例如 选择一个工作表,程序代码就会进行相应的操作。
这样就达到了程序的功能要求,满足了用户的需要。
浙江省普通高中选修课网络课程
EXCEL VBA
编程入门
二、常见的Excel VBA事件
描述
应用程序级的 SheetActivate 事件 发生在任一打开的工 作簿中的任一工作表 被激活时。