我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
每个事件处理程序必须存放在特定类型的代码模块中。工作簿级别事件的代码应该放在ThisWorkbook代码模块中,工作表级别事件的代码应该放在特定工作表的代码模块中(例如,命名为Sheet1的代码模块)。
此外,每个事件处理程序都有预先确定的名称。可以通过键入名称来声明过程,但是更好的方法是让VB编辑器做这项工作。如图显示了ThisWorkbook对象的代码模块。要插入过程声明,从左侧的对象列表中选择Workbook。然后从右侧的程序列表中选择事件。完成上述工作时,就得到了包含过程声明行和End Sub语旬的过程“shell”
例如,如果从对象列表中选择了“Workbook”,从程序列表中选择了Open,则“VB编辑器”将插入下列(空)过程代码:
Private Sub Workbook Open()
End Sub
事件处理程序的VBA代码将置于上述两行之间。
一些事件处理程序包括参数列表。例如,您可能需要创建事件处理程序来监控工作簿的SheetActivate事件。如果使用前面部分讨论的技术,VB编辑器将创建以下事件过程:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
End Sub
该过程使用了一个参数(Sh),它代表了激活的表。在这种情况下,Sh被声明为。object数据类型而非Worksheet 数据类型,因为被激活的表也可能是一个图表。
当然,代码也可利用信息作为一个参数进行传递。下面的例子就是通过访问参数的Name属性,来显示被激活表的名称。参数成为Worksheet对象或是Chart对象。
private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name & " was activated."
End Sub
一些事件处理程序使用被命名为Cancel的“布尔”参数。例如,工作簿的BeforePrint事件的声明如下:
private Sub Workbook BeforePrint(Cancel As Boolean)
传递给过程的Cancel值为False。然而,代码可将Cancel的值设为True,这就取消了打印。下面的例子对此进行了演示:
Private Sub Workbook BeforePrint(Cancel As Boolean)
Msg= "Have you loaded the 5164 label stock? "
Ans=MsgBox(Msg,vbYesNo, "About to print…" )
If Ans =vbNo Then Cancel= True
End Sub
这个Workbook BeforePrint过程在打印工作簿之前执行。此过程将显示一个消息框,询问用户是否确认装载了正确的标签系列。如果单击No按钮,则Cancel将被设为True,不进行打印工作。
相关文章
我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
在工作中,可能许多朋友都会碰到一个情况,那就是工作簿和工作表数据的合并操作。如何将上百个工作簿快速合并到一个表格中,许多朋友可能会觉得不可思议。今天我们就来教大家学习一......
2023-01-08
今天在这里为你分享5个Excel文本函数,这些拆分和组合函数,你一定会用上的。①LEFT函数公式:=LEFT(A2,1)在Excel表格中,需要想要拆分汉字,想从哪里开始就从那哪里开始。首先选定单元格......
2023-01-08
相信大家也和我一样,才开始看到Excel可以当做翻译软件的时候会很好奇,这究竟是怎样做到的?其实,这个方法并不是很难,它是由一个函数公式而制作出来的,好了,首先我们一起来看看成......
2023-01-08
函数可以说是所用快捷方法中最为简单的一种方法,为什么很多人认为函数用起来很难了?主要是因为它拥有很长的函数公式,记不住。其实不管是学Excel函数,还是学习其他的一些快捷方法......
2023-01-08