国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VBA對事件的監(jiān)聽

原創(chuàng)2022-04-26 06:22·VBA語言專業(yè)教育

【分享成果,隨喜正能量】生活百般滋味,你要笑著面對,善待自己,順其自然,生活才能處處是驚喜,事事有回應(yīng)。人活一世,不要把什么都看得那么重,最怕什么都想計較,卻又什么都抓不牢,盼不來的只能放下,留不住的學(xué)會放手。若人走情涼,就守心自暖;若聚散難免,便獨享浮世清歡。一切順其自然,不回頭,不將就。。

《VBA中類的解讀及應(yīng)用》教程是我推出的第五套教程,目前已經(jīng)是第一版修訂了。這套教程定位于最高級,是學(xué)完初級,中級后的教程。

類,是非常抽象的,更具研究的價值。隨著我們學(xué)習(xí)、應(yīng)用VBA的深入,有必要理解這些抽象的理論知識。對象,類,過程,方法,屬性,事件,接口,接口如何實現(xiàn)等等。掌握了這些理論,不僅對于VBA這種寄生語言的實質(zhì)有所深入的理解,也對自然界的很多事物將同樣有所感悟。目前,這套教程程序文件已經(jīng)通過32位,64位兩種office系統(tǒng)測試。

這套教程共兩冊,八十四講,今后一段時間會給大家陸續(xù)推出修訂后的教程內(nèi)容。今日的內(nèi)容是:VBA對事件的監(jiān)聽

第四十講 使用WithEvents定義響應(yīng)事件的對象

大家好,我們繼續(xù)VBA類的學(xué)習(xí),在這套教程中,大家會逐步認識到很多事物的本質(zhì)東西,在上一講中我們提到事件的定義時指出,事件是對象的響應(yīng)。這里的對象是指接收方或者稱之為事件監(jiān)聽者。事件的整個過程對象:事件的發(fā)起方,或者稱之為事件源(Event Source),可以為按鈕對象;事件的響應(yīng)方,或者稱之為事件監(jiān)聽者(Event Sink),可以為窗體或者其他的對象。在上一講也著重地指出:事件的監(jiān)聽方可以為多個對象。我們在這一講就來測試一下。

1 WithEvents關(guān)鍵字的意義

這一講中我們要向大家介紹VBA中的一個關(guān)鍵字:WithEvents(字面意思是攜帶事件)。這個關(guān)鍵字是什么意思呢?就是要引出我們將利用這個事件的對象。當(dāng)然這個對象只能在類模塊和窗體模塊中有效,為什么呢?對于窗體是一個對象,這一點很容易理解;而類也可以看做是一個對象的。其實WithEvents定義的對象又何嘗不是虛擬的呢?這一點只能理解吧。

好了我們先定義下面的一個窗體:

2 監(jiān)聽事件的代碼

這個窗體中我們有兩個按鈕:按鈕1和按鈕2;一個標簽;我們要在按鈕1按下的時候窗體和標簽同時監(jiān)聽到這個事件,同時有不同的反應(yīng)。從而說明一個事件會由多個對象監(jiān)聽到。好了,我們看下面的代碼:

Private WithEvents myCmd As CommandButton

Private Sub CommandButton1_Click()

MsgBox "你好,我是窗體"

End Sub

Private Sub CommandButton2_Click()

Label1.Caption = ""

End Sub

Private Sub myCmd_Click()

Label1.Caption = "您好,歡迎學(xué)習(xí)VBA"

End Sub

Private Sub UserForm_Initialize()

Set myCmd = UserForm1.CommandButton1

Label1.Caption = ""

End Sub

Private Sub UserForm_Terminate()

Set myCmd = Nothing

End Sub

代碼截圖:

3 事件監(jiān)聽過程的分析

代碼解析:

1) 在這個過程中我們定義了一個myCmd對象,用于響應(yīng)CommandButton1_Click,即CommandButton1的單擊事件。

2) 在窗體的加載時Set myCmd = UserForm1.CommandButton1 令myCmd對象指向CommandButton1.

3) 當(dāng)CommandButton1的單擊事件發(fā)生時:窗體的監(jiān)聽到后彈出對話框,“你好,我是窗體”

對象myCmd監(jiān)聽到后修改了標簽的文本內(nèi)容“您好,歡迎學(xué)習(xí)VBA”

下面看一下代碼的測試:

也許有的朋友說,老師,為什么要引入一個如此虛擬的對象mycmd 呢?把代碼直接寫入單擊事件不就行了嗎?各位學(xué)員,不要有這種想法,這套教程側(cè)重的是理論,不是實現(xiàn)的手段。這里講的是對于事件的監(jiān)聽,在理論學(xué)習(xí)階段大家要理解這個過程。

對于事件的理解,希望大家能把握。

今日內(nèi)容回向:

1 如何理解事件的監(jiān)聽?

2 一個事件的響應(yīng)必須是一個對象嗎?

本講內(nèi)容參考程序文件:VBA-CLASS(39-40).xlsm

我20多年的VBA實踐經(jīng)驗,全部濃縮在下面的各個教程中:

【分享成果,隨喜正能量】凡事不必苛求,來了就來了;凡事不必計較,過了就過了;遇事不要皺眉,笑了就笑了;結(jié)果不要強求,做了就對了;生活就是一種簡單,心靜了就平和了。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA--類模塊學(xué)習(xí)
VB中動態(tài)創(chuàng)建控件
WithEvents
VBA中自定義類和事件的(偽)注冊
Excel之VBA常用功能應(yīng)用篇:類模塊過程定義方法定義按鈕事件
EXCEL VBA登錄窗體設(shè)計
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服