SheetActivate事件

合集下载

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

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说明

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基本事件

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开发者模式学习(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 中的工作表保护与隐藏应用技巧工作表保护与隐藏的应用技巧在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工作薄工作表事件一览表修订稿

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-事件(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事件

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 事件 发生在任一打开的工 作簿中的任一工作表 被激活时。

ExcelVBA解读(93):工作簿对象的SheetActivate、SheetDeact。。。

ExcelVBA解读(93):工作簿对象的SheetActivate、SheetDeact。。。

ExcelVBA解读(93):⼯作簿对象的SheetActivate、SheetDeact。

本⽂详细讲解Workbook对象的3个事件:SheetActivate事件、SheetDeactivate事件和SheetSelectionChange事件。

Workbook_SheetActivate事件当激活任意⼯作表时发⽣Workbook_SheetActivate事件。

其语法为:Workbook_SheetActivate(ByVal Sh As Object)说明:参数Sh,必需,表⽰被激活的⼯作表,可以是图表⼯作表或标准⼯作表。

在ThisWorkbook代码模块中输⼊下⾯的代码,当激活⼯作表时弹出⼀个显⽰该⼯作表名字的消息框:Private SubWorkbook_SheetActivate(ByVal Sh As Object)MsgBox '当前⼯作表是:' & End SubWorkbook_SheetDeactivate事件当使⼯作表变为⾮活动⼯作表时发⽣Workbook_SheetDeactivate事件。

其语法为:Workbook_SheetDeactivate(ByVal Sh As Object)说明:参数Sh,必需,表⽰变为⾮活动⼯作表的⼯作表,可以是图表⼯作表或标准⼯作表。

在ThisWorkbook代码模块中输⼊下⾯的代码,当使⼯作表变为⾮活动⼯作表时弹出⼀个显⽰该⼯作表名字的消息框:Private SubWorkbook_SheetDeactivate(ByVal Sh As Object)MsgBox '⾛了,⼯作表:' & End Sub当SheetActivate事件和SheetDeactivate事件都存在时,先发⽣SheetDeactivate事件,再发⽣SheetActivate事件。

Workbook_SheetSelectionChange事件当改变任意⼯作表(图表⼯作表除外)的单元格选择时发⽣Workbook_SheetSelectionChange事件。

VBA中常用的属性、方法和事件

VBA中常用的属性、方法和事件

常用的属性、方法和事件1.Application对象1.1Application对象常见的属性∙DisplayFormulaBar属性:如果该属性为True则显示编辑栏。

∙DisplayScrollBars属性:如果该属性为True则滚动条显示∙DisplayStatuesBar属性:如果该属性为True则显示状态栏∙ScreeUpdation属性:如果该属性为True,则启用屏幕更新∙StatusBar属性:返回或设置状态栏中的文字∙Visible属性“返回或设置一个Boolean值,以确定Excel对象是否可见∙WindowState属性:返回或设置窗口的状态∙Workbook对象2.1Workbooks集合的方法∙Add方法∙Close方法∙Open方法2.2Workbooks属性∙Activesheet属性∙Application属性∙Charts属性∙Full Name属性∙Name属性∙Password属性∙Path属性∙Readonly属性∙Saved属性∙Sheets属性2.3Workbook方法∙Activate∙Close∙Protect∙Save∙Saveas∙Savecopyas∙Unprotect2.4workbook的事件∙Beforeclose事件∙Beforeprint事件∙Newssheet事件∙Open事件∙Sheet activate事件3.worksheet对象3.1worksheets集合的方法∙Add方法∙Copy方法∙Delete方法∙Move方法∙Printout方法∙Printpreview方法3.2worksheet对象的属性∙Cells属性∙Comments属性∙Name属性∙Next属性∙Previous属性∙Range属性∙Scrollarea属性∙Usedname属性∙Visible属性∙。

VBA工作薄工作表事件一览表

VBA工作薄工作表事件一览表

[VBA程序开发]工作薄、工作表事件一览表[复制链接]翻箱倒柜,无意中发现个好东东放到这里,大家查着也方便工作簿对象事件一览表当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。

工作簿上的事件在默认情况下是可用的。

若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的“查看代码”。

在“过程”下拉列表框内选择事件名称。

事件说明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 窗口最大化。

VBA帮助

VBA帮助

VBA帮助(摘自Office2000 VBA帮助)一、VBA入门知识1、激活工作簿2、创建新工作簿3、打开工作簿4、用编号引用工作表5、用名称引用工作表6、将文档保存为 Web 页7、用 A1 样式的记号引用单元格和单元格区域8、用编号引用单元格9、引用行或列10、用快捷记号引用单元格11、引用命名单元格区域12、按相对于其他单元格的方式来引用单元格13、用 Range 对象引用单元格14、引用工作表上的所有单元格15、引用若干单元格区域16、在单元格区域中循环17、选定和激活单元格18、处理三维区域19、处理活动单元格20、在工作表上使用 ActiveX 控件21、在文档中使用 ActiveX 控件22、创建自定义对话框23、在窗体上使用 Microsoft Office Web 组件24、内置对话框参数表25、使用 Microsoft Excel 对象的事件26、在 Visual Basic 中使用 Microsoft Excel 工作表函数27、处理形状(图形对象)28、在某一 Microsoft Office 应用程序中控制其他 Microsoft Office 应用程序29、OLE 程序标识符30、关于数字签名31、启动 Microsoft Excel 时不运行“自动执行宏”32、焦点二、了解对象、属性、方法和事件1、了解对象、属性、方法和事件2、Application 对象3、Workbook 对象4、Workbooks 属性5、Range 对象6、Range 属性7、Cells 属性8、Caller 属性9、Offset 属性10、Rows 属性11、Activate 事件12、Activate、 Deactivate 事件13、Activate 方法14、WorkbookActivate 事件15、WindowActivate 事件16、On Error 语句17、在工作表上使用 ActiveX 控件18、Add 方法(Scenarios 集合)19、Scenarios 集合对象20、Add 方法 (Validation 对象)21、Validation 对象22、Validation 属性23、Open 事件24、Open 方法25、 Click 事件26、Close 方法27、Change 事件28、Value 属性29、DblClick 事件30、SheetBeforeRightClick 事件31、Select 方法32、Select 事件33、Goto 方法34、Worksheet 对象35、SheetChange 事件36、SheetActivate 事件37、OpenLinks 方法38、Enabled 属性三、VBA语法(一)Visual Basic 的命名规则1、写 Visual Basic 语句2、写声明语句3、Dim 语句的语法4、Activate 方法的语法5、Set 语句6、MsgBox 函数的语法7、选项语句的语法8、AddressOf 运算符9、了解变体10、写赋值语句11、写可执行的语句12、Public 语句13、Private 语句14、使用数组15、使用常数16、AppActivate 语句17、Beep 语句19、Date 语句20、Error 语句21、Exit 语句22、GoSub...Return 语句23、GoTo 语句24、Input # 语句25、Let 语句26、Load 语句27、Name 语句28、On...GoSub、On...GoTo 语句29、Open 语句30、Rem 语句31、Stop 语句32、Time 语句33、While...Wend 语句(二)逻辑语句1、If...Then...Else 语句2、使用 Select Case 语句3、使用 For...Next 语句4、For Each...Next 语句5、 Do...Loop 语句6、 With 语句(三)过程1、写 Sub 过程2、写 Function 过程3、写 Property 过程四、 ActiveX 控件1、AfterUpdate 事件2、Click 事件3、Click 事件、命令按钮控件、Accelerator 和 Caption 属性示例4、DblClick 事件5、Error 事件6、KeyDown 和 KeyUp 事件7、KeyPress 事件8、KeyPress 事件示例9、MouseDown 和 MouseUp 事件10、MouseMove 事件11、列表框控件12、SpinDown 和 SpinUp 事件13、SpinDown、SpinUp 事件和 Delay 属性示例14、组合框控件15、命令按钮控件16、标签控件17、列表框控件、DataObject 对象、MouseMove 事件和 StartDrag、SetText 方法示例18、多页控件19、选项按钮控件20、文本框控件21、切换按钮控件22、用户窗体窗口一、VBA入门知识1、激活工作簿用 Activate 方法激活工作簿后,该工作簿将放在活动窗口中。

excel中各种vba写法 - 彷徨豁然开朗 - 博客园

excel中各种vba写法 - 彷徨豁然开朗 - 博客园

Excel中各种VBA写法- 彷徨......豁然开朗- 博客园Excel中各种VBA写法/xioxu/archive/2007/09/19/898282. html先贴一段网上找的excel的各种事件工作簿对象事件一览表当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。

工作簿上的事件在默认情况下是可用的。

若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的&#8220;查看代码&#8221;。

在&#8220;过程&#8221;下拉列表框内选择事件名称。

事件说明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工作簿窗口调整大小时工作表事件一览表工作表上的事件在默认情况下是可用的。

第六章 ExcelVBA常用对象与应用案例

第六章 ExcelVBA常用对象与应用案例

计 算 中 心 编 制
3
上海大学
Shanghai University
Excel VBA常用对象
Private Sub CommandButton1_Click() „动态设置Excel的标题 Application.Caption = "动态设置Excel的标题" End Sub Private Sub CommandButton2_Click() „设置Excel标题为当前日期 Application.Caption = Date End Sub Private Sub CommandButton3_Click() „隐藏滚动条 Application.DisplayScrollBars = False End Sub Private Sub CommandButton4_Click() „显示滚动条 Application.DisplayScrollBars = True End Sub Private Sub CommandButton5_Click() „隐藏状态栏 Application.DisplayStatusBar = False End Sub Private Sub CommandButton6_Click() „显示状态栏 Application.DisplayStatusBar = True End Sub Private Sub CommandButton7_Click() „隐藏编辑栏 Application.DisplayFormulaBar = False End Sub Private Sub CommandButton8_Click() „显示编辑栏 Application.DisplayFormulaBar = True End Sub

ExcelVBA入门(6)-Worksheet对象常用方法事件

ExcelVBA入门(6)-Worksheet对象常用方法事件

ExcelVBA⼊门(6)-Worksheet对象常⽤⽅法事件1. 激活⼯作表 ActiveDim ws As WorksheetSet ws = Application.WorkBooks(1).Worksheets(2)ws.Activate激活了第⼀个⼯作簿的Sheet22. 复制⼯作表 Copy([before], [after])将当前⼯作表复制⼀份, 名字为"当前⼯作表名字(2)"Dim ws As WorksheetSet ws = Application.ActiveWorkbook.Worksheets(1)ws.Copy after:=Worksheets(1)该代码将Sheet1的内容拷贝到新表Sheet1(2)如果不指定before或after, 同样会⽣成⼀个新表, 注意, before和after不能同时使⽤另外, ⼯作表的复制可以跨⼯作簿之间进⾏Dim wbSrc As WorkbookDim wbDes As WorkbookDim ws As WorksheetSet wbSrc = Application.WorkBooks(1)Set wbDes = Application.WorkBooks.AddSet ws = wbSrc.Worksheets(1)ws.Copy after:=wbDes.Worksheets(1)将当前⼯作表的内容复制到新⼯作簿的第2个⼯作表3. 将剪贴板的内容粘贴到⼯作表Paste([destination], [link])Dim ws As WorksheetSet ws = Application.ActiveWorkbook.ActiveSheetws.range("A1:A3").Copyws.Paste destination:=ws.range("F1:F3")先将A1:A3的内容复制到剪贴板, 然后利⽤Paste⽅法, 粘贴到F1:F3区域, 亦或者直接:ws.range("A1:A3").Copyws.Paste destination:=ws.range("F1")Worksheet事件:和Workbook的事件类似, 在"⼯程资源管理器"中, 双击⼀个⼯作表, 在右边代码区上⾯选择Worksheet, 然后再选择相应的事件选择⼀个事件会⾃动列出事件代码常⽤的操作⼯作表的⽅法1. 访问⼯作表两种⽅式: a. 根据索引号(从1开始) b.根据⼯作表名称Dim wb As WorkbookDim ws As WorksheetDim wsCount As IntegerDim i As IntegerDim sheetnames() As StringSet wb = Application.WorkBooks(1)wb.ActivatewsCount = wb.Worksheets.CountReDim sheetnames(1 To wsCount)PrintInfo "当前⼯作簿共包含" & CStr(wsCount) & "个⼯作表"For i = 1 To wsCountSet ws = wb.Worksheets(i)Debug.Print Space(5) & sheetnames(i) = NextDebug.PrintDebug.Print "使⽤Sheets集合按名称访问⼯作表"For i = 1 To wsCountSet ws = wb.Worksheets(sheetnames(i))Debug.Print Space(5) & NextSet ws = NothingSet wb = Nothing例⼦⽐较简单, 说明⼀下Space(5)的意思是五个空格, CStr()是把参数转换为字符串核⼼就是 Worksheets(1) 和Worksheets("Sheet1") 是等效的 (默认没有改⼯作表名字⽽且没有移动⼯作表顺序的情况下)另外在遍历⼯作表的时候使⽤的是Worksheets属性, 如果使⽤Sheets属性则需要判断⼯作表的类型是普通⼯作表还是图表⼯作表根据Type属性判断: If ws.Type = xlWorksheet Then2. 判断⼯作表是否存在判断⼯作表是否存在就是⽤指定的名称遍历所有⼯作表, 没什么难点Dim wb As WorkbookDim ws As WorksheetDim i As IntegerDim count As IntegerDim flag As BooleanDim findName As StringfindName = "Sheet7"Set wb = Application.ActiveWorkbookcount = wb.Worksheets.countflag = FalseFor i = 1 To countIf wb.Worksheets(i).name = findName Thenflag = TrueExit ForEnd IfNextIf flag ThenMsgBox "存在" & findNameElseMsgBox "不存在" & findNameEnd IfSet ws = NothingSet wb = Nothing这段代码不⽤解释了3.新建⼯作表 Application.ActiveWorkbook.Worksheets.Add([Before], [After], [Count], [Type]) As Object新建⼯作表和之前的新建⼯作簿类似Dim ws As WorksheetSet ws = Worksheets.AddDebug.Print 完整写法Set ws = Application.ActiveWorkbook.Worksheets.Add(before:=Worksheets(8), count:=2, Type:=xlWorksheet)意思是在第8个表前加⼊两个⼯作表同样的Before和After不能同时使⽤4. 重命名⼯作表直接设置⼯作表的name属性即可, 但是要先判断该名称是否已经存在, 否则会报错为了简单说明, 这⾥就不作判断了Dim ws As WorksheetSet ws = Application.WorkBooks(1).Worksheets(1) = "SheeT1"将"Sheet1"重命名为了"SheeT1"5. 移动⼯作表Dim wb As WorkbookDim ws As WorksheetSet wb = Application.WorkBooks(1)wb.ActivateSet ws = wb.Worksheets(1)ws.Move after:=ws.NextSet wb = NothingSet ws = Nothing道理和复制⼀样, ws.Move after:=ws.Next 将第⼀个⼯作表向后移动⼀次同理, 移动也可以跨⼯作簿进⾏Dim wbSrc As WorkbookDim wbDes As WorkbookDim ws As WorksheetSet wbSrc = Application.WorkBooks(1)Set wbDes = Application.WorkBooks.AddSet ws = wbSrc.Worksheets(1)ws.Move after:=wbDes.Worksheets(1)将当前⼯作簿的Sheet1 移动到新的⼯作簿的Sheet1后6. 删除⼯作表注意: 删除前请保存重要数据Dim wb As WorkbookDim ws As WorksheetDim sheetName As StringDim count As IntegerSet wb = Application.WorkBooks(1)Set ws = wb.Worksheets(1)sheetName = count = wb.Worksheets.countIf count > 1 ThenApplication.DisplayAlerts = Falsews.DeleteMsgBox "成功删除" & sheetName, vbOKOnly, "删除⼯作表"Application.DisplayAlerts = TrueElseMsgBox "⼯作表" & sheetName & "是⼯作簿的最后⼀张表, ⽆法删除", vbCritical, "删除⼯作表" End IfSet wb = NothingSet ws = Nothing。

VBA 中的事件驱动编程实例解析

VBA 中的事件驱动编程实例解析

VBA 中的事件驱动编程实例解析VBA(Visual Basic for Applications)是一种用于 Microsoft Office 应用程序的编程语言,具有丰富的功能和灵活性。

VBA 的事件驱动编程是一种非常重要的编程范式,它允许程序在特定事件发生时自动响应,从而实现更加智能和交互性的应用程序。

本文将通过解析一些 VBA 中的事件驱动编程实例,向读者展示如何使用事件来触发特定的程序行为,并为读者提供一些实用的技巧和建议。

一、Button_Click 事件在VBA中,我们可以使用 Button_Click 事件来响应按钮的点击行为。

这是一种常见的应用场景,用户点击按钮后,程序执行相应的操作。

例如,假设我们在 Excel 中创建了一个名为"Button1"的按钮,当用户点击该按钮时,我们希望在单元格"A1"中显示"Hello, World!"。

我们可以在 VBA 编辑器中编写以下代码来实现:```Private Sub Button1_Click()Range("A1").Value = "Hello, World!"End Sub```这段代码使用了 Button1_Click 事件,当用户点击按钮时,代码会自动执行,并将字符串"Hello, World!"写入单元格"A1"。

二、Worksheet_Change 事件Worksheet_Change 事件用于在 Excel 工作表中的单元格内容发生变化时自动执行代码。

这个事件适用于许多实际应用,比如在用户输入数据后自动计算结果或者验证数据的有效性等。

例如,假设我们有一个名为"Sheet1"的工作表,其中包含两个单元格"A1"和"B1"。

EXCEL基本事件

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”对象,打开“代码编辑器”窗口,在“过程”下拉列表框中选择事件名称。

使用Activate方法

使用Activate方法

1-1使用Activate方法Activate一个编程过程。

它将一个对象装载到内存中,使其处于可执行或正还可以使用Activate方法选定单元格或单元格区域,如下面的代码所示。

Activate 方法的语法编辑#001Sub RngActiva te()Activate 方法可以应用多个对象,但其语法却是通用的:#002 Sheet3.Ac tivate expressio n.Activate#003 Sheet3.Ra nge("A1:B 10").Acti vate expressio n 必需。

该表达式返回对象。

#004End Sub 它应用于下面这些对象中:代码解析:1、应用于Chart和ChartObj ect 对象的Activate 方法。

RngActiva te过程使用Activate方法选定Sheet3中的A1:B10单元格区域,Activate方法应用于Range对象时语法如下:Activate 方法的作用为使当前图表成为活动图表。

expression.Activate 于Workshe et 对象的Activate方法。

使用Activate 方法选定单元格时,单元格所在的工作表也必需为活动工作表,否则Activate方法有可能出错,显示如图2‑2所示的错误提示。

Activate 方法的作用为使当前工作表成为活动工作表。

等同于单击工作表的选项卡。

3、应用于OLEObject 对象的Activate方法。

图 2‑2ctivate 方法无效提示Activate方法的作用为激活对象。

4、应用于 Pane对象的Activate 方法。

方法的作用为激活窗格。

如果该窗格不在活动窗口,则该窗格所属的窗口也将激活。

不能激活冻结的窗格。

5、应用于 Range 对象的Activate 方法。

Activate 方法的作用为激活单个单元格,该单元格必须处于当前选定区域内。

可用Select方法选定单元格区域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档