worksheet对象一共有17个时间,可以在【代码窗口】的【事件】列表框或VBA帮助中查看这些事件
双击工作表之后,默认的双击操作之前发生 |
右击工作表之后,默认的右击操作发生之前 |
重新计算工作表之后发生 |
工作表中的单元格发生更改时发生 |
工作表由活动工作表变为不活动工作表时发生 |
单击工作表中的任意超链接时发生 |
在工作表中更新数据透视表后发生 |
工作表中所选内容发生更改时发生 |
工作簿事件是发生在workbook对象中的事件,一个workbook对象代表一个工作簿,workbook对象的事件过程必须写在ThisWorkbook模块中,可以在【工程资源管理器】中找到这个模块
open事件是最常用的workbook事件之一,同国外吗会使用该事件对excel进行初始化设置,如设置想打开工作簿看到的excel窗口或工作界面,显示我们自定义的用户窗体等
当工作簿作为加载宏安装时发生 |
当工作簿作为加载宏卸载时发生 |
在打印指定工作簿之前发生 |
在工作簿状态作为非活动状态时发生 |
在工作簿新建一个图表时发生 |
在工作簿新建一个工作表时发生 |
在双击任意工作表之前发生 |
在右击任意工作表之前发生 |
在重新计算工作表之后发生 |
当更改了任意工作表的单元格之后发生 |
当任意工作表转为非活动状态时发生 |
当单击工作簿中的任意超链接时发生 |
当更新任意数据透视表时发生 |
当任意工作表中的选定区域发生更改时发生 |
在激活任意工作簿窗口时发生 |
当任意窗口变为不活动窗口时发生 |
在调整任意工作簿窗口大小时发生 |
OnKey方法告诉excel,当按下键盘上指定的键或者组合键时,自动执行指定的程序
在onkey中可以设置的按键及其对应代码
Ontime方法告诉VBA,在指定的时间自动执行指定的过程
Ontime的DateSerial参数可以设置指定的年月日;Scheduled的值如果为TRUE,会新设置一个Ontime过程,如果为False,就会清除之前设置的过程,默认值为TRUE
excel中有两种类型的控件:表单控件和ActiveX控件。可以在excel的【功能区】中找到它们
提供可选择的多个选项,用户可以选择其中一个项目 |
用于选择的控件,可以多项选择 |
通过单击控件的箭头来选择数值 |
显示多个选项的列表,用户可以从中选择一个选项 |
用于选择的控件,通常几个选项按钮用组合框组合在一起使用,在一组中只能同时选择一个选项按钮 |
用于输入和显示静态文本 |
包括水平滚动条和垂直滚动条 |
Input函数共有5个参数:
用application对象的inputbox方法也可以创建于程序互动的对话框,但要注意与Inputbox函数相比,Input方法的参数有些许不同
type参数的可设置项及说明
0 |
单元格引用(range对象) |
设置在对话框中显示的按钮样式
0 |
只显示【确定】和【取消】按钮 |
显示【终止】,【重试】,【忽略】三个按钮 |
显示是,否,取消三个按钮 |
显示重试,取消两个按钮 |
0 | 应用程序强制返回;应用程序暂停执行,直到用户消息框做出响应才继续 |
系统强制返回;全部应用程序都暂停执行,直到用户对消息框做出响应才继续工作 |
在对话框中添加帮助按钮 |
设置显示的对话框窗口为前景窗口 |
设置对话框中显示的文本为右对齐 |
指定文本英在希伯来文和Alibaba系统中显示为从右到左阅读 |
使用application对象的FindFile方法可以显示【打开】对话框,在对话框中选择并打开某个文件
MsgBox "你单击了【取消按钮】,操作未完成"与findfile方法不同,使用GetOpenFileName方法是获得在对话框中选中的文件的文件名称(包含路径),而findfile是打开在对话框中选中的文件
要想获得选中的文件名称,还可以调用application对象的GetSaveAsFilename方法打开【另存为】对话框,在对话框文中选择文件,获得该文件包含路径信息的文件名称
Title = "请选择要获取信息的文件"如果想要获得的不是文件名,而是指定目录的路径及名称,可以使用application对象的FileDialog属性。
很多时候,我们都希望自己能够设计一个交互界面,定义其中的控件及控件的功能,这就需要用到VBA中的另一类常用对象——Userform对象。一个用户窗体就是一个Userform对象,也就是大家常说的窗体对象。当在工程中添加一个窗体后,就可以在窗体上自由的添加ActiveX控件,只要通过编写VBA代码为这些控件指定功能,就能利用这些控件与excel互动
在VBE窗口中选中窗体,依次执行【运行】——>【运行子过程/窗体】命令,即可显示选中的窗体
要将窗体显示为模式窗体,可以使用代码
或者省略show方法的参数,或者将参数设置为vModal,VBA都会讲窗口见识为模式窗体
2. 无模式窗体允许进行窗体外的其他操作
要将窗体显示为无模式窗体,必须通过show方法制定参数
如果将窗体显示为无模式窗体,当窗体显示后,系统会继续执行程序余下的代码,也允许我们操作窗体之外的其他对象
Initialize事件发生在显示窗体之前,当我们在程序中使用load语句加载窗体,或者使用show显示窗体时,都会引发该时间
queryclose事件过程是一个带两个参数的sub过程,其中的cancel参数确定是否响应我们关闭窗体的操作。当值为TRUE时,程序将不响应我们关闭窗体的操作。如果cancel的值为false,程序将关闭窗体。其中CloseMode参数是我们关闭窗体的方式,不同的关闭方式返回的值也不相同
0 | 在窗体中单击【关闭】按钮关闭窗体 |
通过unload语句关闭窗体 | |
正在结束当前Windows操作环境的过程 | |
windows的【任务管理器】正在关闭整个应用 |
给按钮设置了快捷键后,显示窗体时,当按下对应的快捷键就等于在窗体中用鼠标单击了该按钮。
只有对象被激活时,才能几首键盘输入。控件的Tab键顺序决定用户按下【Tab】或【Shift+Tab】组合键后控件激活的顺序。在设计窗体时,系统会按照添加控件的先后顺序确定控件的Tab顺序。但是这个顺序是可以更改的。在VBE中选中窗体,依次执行【视图】——>【Tab键顺序】命令。调出Tab键顺序对话框,即可在其中调整控件的Tab键顺序
2. 添加代码,为控件指定功能
On Error GoTo 标签实际就是在“on error”的后面加了一个GoTo语句,其中的“标签”就是替goto语句设置的标签,是一个数字或者带冒号的文本。标签告诉VBA,当程序运行过程中晕倒运行时错误时,跳转到标签所在行的代码继续执行程序,实际上就是让程序跳过出错的代码,从另一个地方重新开始执行程序。
Resume Next告诉VBA,如果程序发生错误,则忽略存在错误的代码,接着执行错误行之后的代码。如果程序一开始加入On Error Resume Next语句,运行程序时,及时程序中存在运行时错误,VBA也不会中断程序,而是忽略所有存在错误的语句,继续执行出错语句后的代码
使用On Error GoTo 0语句后,将关闭对程序中运行时错误的捕捉,如果程序在On Error GoTo 0语句后出现运行错误,将不会被捕捉到
从后面往前删除就可以保持前面的位置。
VBA不难,试着去写,很多问题都会迎刃而解,稍微有的函数、过程调用不知道参数,屏幕上都会提示的。
步骤四、保持步骤三中的excel文件处于打开状态,打开需要处理excel文件,执行上述两个宏即可。
如果要删除空行,则运行Delete_Empty_Rows(),指定区域中的空行将被删除。
注意所谓空行是在指定区域中的,如果在指定区域内是空行,而在指定区域外不是空行,那么这些空行还是将会被删除。
步骤四、保持步骤三中的excel文件处于打开状态,打开需要处理excel文件,执行上述两个宏即可。
如果要删除空行,则运行Delete_Empty_Rows(),指定区域中的空行将被删除。
注意所谓空行是在指定区域中的,如果在指定区域内是 空行,而在指定区域外不是空行,那么这些空行还是将会被删除。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。