事件
5.6.2.4 Excel VBA组合框的DropDown事件
该事件是当组合框控件的列表部分正要被放下时发生;如果组合框控件的Style属性设置为1(简单的Combo),则此事件不会发生。其语法形式为: Private Subobject- DropDown([index As Integer]) 其中,inde:是可选项.用来标识在控件数组中的一个控件:DropDown事件过程可以用在接受选择之前对组合框进行最后的各种更新。
excel模拟“AfterPrint”事件打印后执行命令
通常在Excel VBA中用“Workbook.BeforePrint”事件在打印前执行某项操作或命令,那么,要在打印后再执行某个命令该如何实现呢?Excel中并没有提供“AfterPrint”事件,用下面的VBA代码可以模拟“AfterPrint”事件。假如在“Sheet1”表的A1单元格包含某个数值,需要在打印后让这个数值加“1”,方法如下:按Alt+F11,打开VBA编辑器,在“工程”窗口中双击“ThisWorkBook”,在代码窗口中粘贴下列代码:Private Sub Workbook_BeforePrint(Cancel As Boolean)Application.EnableEvents = False ‘不触发BeforePrint事件ActiveSheet.PrintOutSheet1.Range("a1").Value = Sheet1.Range("a1").Value + 1Application.EnableEvents = TrueCancel = True ‘取消打印End Sub返回Excel工作表界面,在“工具栏”或“快速访问工具栏”中点“打印”按钮打印当前活动工作表后,Sheet1表A1单元格的数值就会自动加“1”。
如何使Excel事件无效
在Excel VBA中,如果需要使Excel事件无效以方便用户的操作体验,可通过VBA使Excel事件无效。Excel2003可通过VBA宏使Excel事件无效。使Excel事件无效的方法:首先按“Alt+F11”组合键,Excel2003打开代码编辑器,单击“插入”菜单-“模块”,双击插入的模块,在右侧的代码窗口中输入:Sub Excel_Partner()Application.EnableEvents = FalseActiveWorkbook.SaveMsgBox "Excel事件已无效,下面将恢复!"Application.EnableEvents = TrueActiveWorkbook.SaveEnd Sub按F5运行键运行程序,即可使Excel事件无效。
Excel VBA一个简单例子,VBA快速入门
最近在弄excel vba 的东西,也是初学者,现就这些东西理理,让其他学习者少走弯路。我的excel版本是2007,2003估计也差不多吧。什么是vba:vba是Visual Basic for Application的简写,从命名可见,它和vb关系密切,有vb基础相信学这个就非常容易1.首先要允许excel加载宏excel文件-》excel选项(右下脚)-》信任中心-》信任中心设置-》允许加载宏2.按住alt+F11打开vba命令编辑器里面可以写各种函数,事件响应等,具体信息可查看vba帮助文档。vba的帮助文档在打开vba编辑器后,按F1可打开,里面包含各种对象,对象的属性、事件、方法,详细用法和举例里面也有,参考这个文档是关键。3.对于事件的响应,要注意,那个worksheet会调用它,把代码卸载那个worksheet中,如我双击sheet1中的单元格要出效果,代码写在sheet1中。如果要点击sheet2出效果,代码要卸载sheet2对应的地方。写完保存后,双击sheet1中的任意单元格,即可出现预期代码。我图片中的代码对sheet1中的双击范围作了限定,仅第一列,行限定为6到倒数第二列。大家可根据自己的实际情况,做调整。
Excel 控件【ActiveX控件】基础教程
本文介绍excel【ActiveX控件】相关的一些知识点。Excel控件是放置于窗体上的一些图形对象,可用来显示或输入数据、执行操作或使窗体更易于阅读。这些对象包括文本框、列表框、选项按钮、命令按钮及其他一些对象。控件提供给用户一些可供选择的选项,或是某些按钮,单击后可运行宏程序。 第一,excel控件之ActiveX控件 ActiveX控件,比窗体工具条中的控件要更灵活,是VBE中用户窗体控件的子集,在Excel工作表中和VBE编辑器中都是可用的,尤其在要对使用控件时发生的不同事件进行控制时。我们能捕获这些控件的事件,这也是其灵活的主要原因。这些事件可能是单击、双击、变化(例如对组合框控件项目进行新的选择),用户能离开这个控件并转移焦点到另一个控件或返回到Excel界面,等等。 ActiveX控件也有一个长的属性列表,如字体(Font)、标题(Caption)、名称(Name)、单元格链接(LinkedCell)、高度(Height),等等。这些属性取决于控件的类型,但所有控件都有诸如名称(Name)属性和一些其它的属性。 ActiveX控件也具有可自定义的属性。例如,可指定当用户指向控件时指针的外观。您可编写宏,响应与ActiveX控件相关的事件。可在Excel窗体上和VBA程序窗体和对话框中使用ActiveX控件。 在使用控件时,如果不使用带有控件事件的VBA代码,则很少使用ActiveX控件;如果您不熟悉VBA,您应该选择使用窗体工具条控件。ActiveX控件与在VisualBasic编程语言中使用的控件相类似,是可以添加到VisualBasic编辑器自定义窗体中的控件。将ActiveX控件添加到工作表中时,您应编写引用控件标识号的宏代码,而不是分配在单击控件时要运行的宏。当窗体的用户使用控件时,将运行您编写的宏代码来处理发生的任何事件。当添加一个ActiveX控件到工作表中时,它被内嵌入工作表成为工作表的一个对象成员,并自动处于“设计模式”,允许我们对控件进行处理而不会引发控件事件。为了能捕获控件的任何事件,该事件程序应放置在工作表对象的模块中,您能(在处于设计模式时)通过在控件上双击进入代码模块,并显示出该控件的缺省过程。为了指定您想要的事件过程,您也可以在代码模块编辑器右上方的事件过程下拉列表中选择相应的事件过程。 但是,不可在图表工作表或XLM宏工作表中使用控件。对于这些情况,您应使用“窗体”工具栏上的控件。如果要从控件直接运行附加的宏,最好也应使用“窗体”工具栏控件。 对于要放到网页上的Excel窗体和数据,可包含ActiveX控件,并可编写在Web浏览器中使用控件时要运行的Web脚本(而不是宏代码)。还可通过使用Microsoft脚本编辑器编写VBScript或JavaScript形式的脚本。 第二,如何识别excel控件属于哪类控件 要确定控件类型,可以右键单击该控件,会显示快捷菜单: (1)如果快捷菜单包含“属性”命令,则该控件为“控件工具箱”中的ActiveX控件,且您处于“设计”模式。 (2)如果快捷菜单包含“指定宏”命令,则该控件为“窗体”工具栏控件。 (3)如果快捷菜单包含“编辑文字”命令,则该对象为“绘图”工具栏对象。 如果右键单击控件以显示快捷菜单时却没有响应,则该控件是ActiveX控件且您不在“设计”模式下。若要显示ActiveX控件的快捷菜单以编辑属性或查看宏代码,则必须处于设计模式。
5.4.2.1 Excel VBA文本框的Change事件
当文字框中的文本的内容发生变化时,引发Change事件。Change事件为文字框狱认的事件,即双击文字框,即可进入该文字框的Change事件的代码编辑部分。
5.2.3.7 Excel VBA窗体的QueryUnload事件
即将要卸载窗体的时候,窗体对象就会收到一个伽eryUnload事件。通过检查UnloadMode参数可以了解窗体卸载的原因。以下是QueryUnloed事件处理过程的代码:Private Sub Form QueryUnload(Cancel As Integer, UnloadMode As Integer)Select Case UnloadModeCase vbFormControlMenu,用户关闭窗体Case vbFormCode,代码终止窗体Case vbAppWindows,当前窗口进行正在终止Case vbAppTaskManager,任务粉理器关闭程序Case vbFormMDlForm,MDI父窗体关闭窗口Case vbFormOwner父窗体被关闭End SelectEnd Sub当然,可以通过将Cancel参数设置为True拒绝卸载窗体:Private Sub Form QueryUnload(Cancel As Integer, UnloadMode As Integer)拒绝用户关闭窗口Select Case UnloadModeCase vbFormControlMenu,vbAppTaskManagerCancel一TrueEnd SelectEnd Sub
5.2.3.10 Excel VBA窗体的GetFocus和LostFocus事件
这些事件概念上来说非常简单,GotFocus事件就是当一个控件获得输入焦点时发生,而LostFocus事件是当输入热点离开控件转入另一个控件时发生。初一看,这些事件用于实现一系列的确认操作很理想,也就是说检查区域内容和提示用户输入值不正确的代码片断.实际E,这些事件的次序受到一些因素的制约,包括MsgBox和DoEvents语句的存在.值得庆幸的是.Visual Basic 6引入了新的Validate事件,它可以完美地解决区域有效性校验的问题。注意:窗体也能接受GetFocus和LostFocus事件,前提条件是窗体中没有其他可以接受拾入焦点的拉件,或者所有的控件不可见或TabStoP属性设豆为False.
5.2.3.8 Excel VBA窗体的Unload事件
如果不想取消卸载操作,最终抛出Unload事件。使得用户有最后一次机会阻止窗体的关闭。大多数情况下.应该利用这次机会提醒用户保存数据:Dim Saved As Boolean’定义一个模块级变且Private Sub Formes Unload(Cancel As Integer)If Not Saved ThenMsgBox "Please save data first!"Cancel-TrueEnd IfEnd Sub
5.2.3.6 Excel VBA窗体的Deactivate事件
当切换到其他的程序时,窗体就会接收到一个Deactivate事件:当窗体重新获得输入焦点的时候,就会接收到一个Activate事件。如果通过设置窗体的Visible属性为False或者使用窗体的Hide方法哲时将窗体变为不可见,同样的事件次序就会发生。