请教下VBA中RaiseEvent的作用
我看很多高手的帖子里,喜欢定义Event,然后用RaiseEvent来调用,这个和直接调用一个Sub过程有什么区别吗?借用一个高手的帖子里的代码:PublicWithEv...
我看很多高手的帖子里,喜欢定义Event,然后用RaiseEvent来调用,这个和直接调用一个Sub过程有什么区别吗?
借用一个高手的帖子里的代码:
Public WithEvents cmdBars As CommandBars
Public Event Zoom(ByVal number As Integer)
Private Sub Class_Initialize()
Set cmdBars = Application.CommandBars
End Sub
Private Sub cmdBars_OnUpdate()
If ActiveWindow.Zoom <> 100 Then
'使用RaiseEvent语句触发Zoom事件并把当前窗口的显示比例作为参数传入
RaiseEvent Zoom(ActiveWindow.Zoom)
End If
End Sub
像这里,要是直接写一个Zoom的Sub过程直接调用,有什么不同呢?
请高手赐教,谢谢。 展开
借用一个高手的帖子里的代码:
Public WithEvents cmdBars As CommandBars
Public Event Zoom(ByVal number As Integer)
Private Sub Class_Initialize()
Set cmdBars = Application.CommandBars
End Sub
Private Sub cmdBars_OnUpdate()
If ActiveWindow.Zoom <> 100 Then
'使用RaiseEvent语句触发Zoom事件并把当前窗口的显示比例作为参数传入
RaiseEvent Zoom(ActiveWindow.Zoom)
End If
End Sub
像这里,要是直接写一个Zoom的Sub过程直接调用,有什么不同呢?
请高手赐教,谢谢。 展开
2个回答
2015-05-11
展开全部
最简单的理解就是:将“对象”赋值给“变量”,对“对象”和”赋值“理解是关键,如果是定义就可以用dim了,比如在AutoCAD VBA中 可以"dim newline as acadline"来定义,而用“set newline=thisdrawing.modelspace.addline(point1,point2)"建一个新直线,excel VBA中
”set newworksheet=worksheets.add"来新建一个工作簿
”set newworksheet=worksheets.add"来新建一个工作簿
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询