一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

學(xué)習(xí)VBA,報(bào)表做到飛 第五章 事件篇 5.6 Worksheet_Change事件

 拾叁億人 2023-04-05 發(fā)布于云南

第五章 事件篇

5.6 Worksheet_Change事件

這是一個(gè)工作表事件,當(dāng)代碼所在的工作表的內(nèi)容被修改時(shí),觸發(fā)該事件。

我們先來看一下這個(gè)事件的語句結(jié)構(gòu):

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

這個(gè)事件有一個(gè)變量Target,它是一個(gè)單元格變量,它代表被修改的單元格。我們對(duì)一個(gè)單元格所做的修改內(nèi)容,就會(huì)賦值給這個(gè)變量。下面我們通過一個(gè)案例來學(xué)習(xí)這個(gè)事件的應(yīng)用。

我們想錄入一個(gè)如下圖所示的學(xué)生選修專業(yè)統(tǒng)計(jì)表,學(xué)生可選修的專業(yè)有概論、數(shù)理統(tǒng)計(jì)、VBA語言和PASCAL語言,如果我們在選修專業(yè)單元格里直接錄入這些內(nèi)容,由于學(xué)生人數(shù)眾多,錄入工作量會(huì)非常大。我們用數(shù)字1來代表概論,2代表數(shù)理統(tǒng)計(jì),3代表VBA語言,4代表PASCAL語言,在選修專業(yè)單元格里直接錄入學(xué)生選修專業(yè)所對(duì)應(yīng)的數(shù)字,單元格會(huì)自動(dòng)錄入選修專業(yè),這樣就可以大大減輕我們的工作量了。

**系學(xué)生選修專業(yè)統(tǒng)計(jì)表

序號(hào)

學(xué)生姓名

選修專業(yè)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub

Application.EnableEvents = False

If Target = 1 Then

Target = '概論'

ElseIf Target = 2 Then

Target = '數(shù)理統(tǒng)計(jì)'

ElseIf Target = 3 Then

Target = 'VBA語言'

ElseIf Target = 4 Then

Target = 'PASCAL語言'

Else

MsgBox '請輸入1-4之間的數(shù)字'

Target = ''

End If

Application.EnableEvents = True

End Sub

我們先看一下小程序開頭的這條語句:

If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub

它的意思是,如果我們修改的單元格不在第3列,或者同時(shí)修改兩個(gè)以上單元格,那么就會(huì)退出程序,這樣就可以對(duì)表格的哪塊區(qū)域修改能讓該事件正確響應(yīng)做了一個(gè)限定。

接下來的程序里,如果一個(gè)單元格輸入1,VBA會(huì)自動(dòng)給該單元格賦值“概論”,輸入2則賦值“數(shù)理統(tǒng)計(jì)”,3賦值“VBA語言”,4賦值“PASCAL語言”。

那么,我們?yōu)槭裁催€要對(duì)EnableEvents屬性進(jìn)行更改呢?

如果沒有

Else

MsgBox '請輸入1-4之間的數(shù)字'

Target = ''

這條語句,我們是不需要對(duì)EnableEvents屬性進(jìn)行更改的。有了這條語句,假如我們輸入了5,VBA會(huì)彈出對(duì)話框并對(duì)單元格賦值為空,而對(duì)單元格賦空值則又觸發(fā)了該事件響應(yīng),它判斷輸入的不是1-4之間的數(shù)字,又會(huì)彈出對(duì)話框并對(duì)單元格賦值為空。這樣就會(huì)一直彈出對(duì)話框,陷入了一個(gè)死循環(huán)。所以在該事件正確響應(yīng)后,我們先把EnableEvents屬性設(shè)置為False,確保該段代碼執(zhí)行完畢前不再觸發(fā)Worksheet_Change事件,待程序把數(shù)據(jù)處理完畢后,程序結(jié)束前,把EnableEvents屬性再設(shè)置為True,等待下一次輸入能夠再次觸發(fā)Worksheet_Change事件。

程序執(zhí)行的效果是這樣的:

文章圖片1

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多

    欧美精品久久一二三区| 欧美亚洲综合另类色妞| 亚洲av熟女一区二区三区蜜桃| 少妇特黄av一区二区三区| 欧美国产极品一区二区| 欧美有码黄片免费在线视频| 蜜桃av人妻精品一区二区三区| 日本本亚洲三级在线播放| 99久久国产亚洲综合精品| 日本精品最新字幕视频播放 | 日韩欧美第一页在线观看| 日韩精品中文字幕在线视频| 亚洲精品福利视频在线观看| 国产又粗又黄又爽又硬的| 免费在线播放不卡视频| 国产一区二区三区四区中文| 一本色道久久综合狠狠躁| 日本久久精品在线观看| 夜夜躁狠狠躁日日躁视频黑人| 开心五月激情综合婷婷色| 中文字幕人妻综合一区二区| 麻豆看片麻豆免费视频| 欧美人妻免费一区二区三区 | 日韩中文字幕在线不卡一区| 欧美在线观看视频三区| 国产午夜福利不卡片在线观看| 日韩精品一级一区二区| 日本特黄特色大片免费观看| 熟女乱一区二区三区四区| 丰满少妇被猛烈撞击在线视频| 日韩一区中文免费视频| 亚洲一区二区三区国产| 日韩美女偷拍视频久久| 欧美一级片日韩一级片 | 色哟哟精品一区二区三区| 热情的邻居在线中文字幕| 国内真实露脸偷拍视频| 黄色三级日本在线观看| 中国日韩一级黄色大片| 亚洲一区二区精品福利| 少妇丰满a一区二区三区|