向左走,向右走——使用If語句選擇

      網(wǎng)友投稿 496 2025-03-31

      向左走,向右走——使用If語句選擇

      在日常生活中,我們常常要做出選擇,例如,如果明天不下雨,我們就去郊游。在VBA中,也有類似的語句,讓我們控制程序的執(zhí)行方向,例如,如果單元格A1的值為0,那么就彈出警告消息“單元格A1的值不能為0”。

      將上面的描述用語句來表達(dá),如下圖所示:

      VBA中If-Then語句結(jié)構(gòu)的基本語法如下:

      If 條件 Then 條件為真時(shí)執(zhí)行的語句 [Else 條件為假時(shí)執(zhí)行的語句]

      說明:

      條件為真(假)時(shí)執(zhí)行的語句可以為一條或多條。

      方括號(hào)中的Else子句可選。

      前述示例完整的過程代碼為:

      Sub testIf()

      If Range(“A1”).Value = 0 ThenMsgBox “單元格A1的值不能為0”

      End Sub

      或者:

      Sub testIf2()

      If Range(“A1”).Value = 0 Then

      MsgBox “單元格A1的值不能為0”

      End If

      End Sub

      注意,在過程testIf2中,將If-Then語句寫在多行中,此時(shí)應(yīng)加上End If語句。在If-Then行與End If行之間,可以添加多條語句。

      再看看下面的代碼:

      Sub testIf3()

      If Range(“A1”).Value = 0 Then

      MsgBox “單元格A1的值不能為0”

      Else

      Range(“B1”).Value = 20 /Range(“A1”).Value

      End If

      End Sub

      代碼的意思是:如果單元格A1的值為0,那么就彈出警告消息“單元格A1的值不能為0”;否則,就用20來除以單元格A1中的值,并將結(jié)果填寫到單元格B1中。

      當(dāng)然,下面的代碼也可以實(shí)現(xiàn)上述功能,只是使用了更多的If-Then語句:

      Sub testIf4()

      If Range(“A1”).Value = 0 ThenMsgBox “單元格A1的值不能為0”

      If Range(“A1”).Value <> 0Then Range(“B1”).Value = 20 / Range(“A1”).Value

      End Sub

      我們?cè)俣嘁恍l件,如下面的代碼:

      Sub testIf5()

      If Range(“A1”).Value = 0 ThenMsgBox “單元格A1的值不能為0”

      If Range(“A1”).Value <= 10Then Range(“B1”).Value = 20 / Range(“A1”).Value

      If Range(“A1”).Value > 10 ThenRange(“B1”).Value = 100 / Range(“A1”).Value

      End Sub

      如果單元格A1的值為0,那么就彈出警告消息“單元格A1的值不能為0”;如果單元格A1中的值小于等于10,就用20來除以單元格A1中的值,并將結(jié)果填寫到單元格B1中;如果單元格A1中的值大于10,就用100來除以單元格A1中的值,并將結(jié)果填寫到單元格B1中。

      改寫If-Then結(jié)構(gòu)實(shí)現(xiàn)相同的效果,代碼如下:

      Sub testIf6()

      If Range(“A1”).Value = 0 Then

      MsgBox “單元格A1的值不能為0”

      ElseIf Range(“A1”).Value <= 10Then

      Range(“B1”).Value = 20 /Range(“A1”).Value

      Else

      Range(“B1”).Value = 100 /Range(“A1”).Value

      End If

      End Sub

      由上可知,在多條件下If-Then結(jié)構(gòu)的擴(kuò)展語法結(jié)構(gòu)為:

      If 條件Then

      條件為真時(shí)執(zhí)行的語句

      [ElseIf 另一條件Then

      另一條件為真時(shí)執(zhí)行的語句]

      [Else

      所有條件都為假時(shí)執(zhí)行的語句]

      End If

      說明:

      可以有多個(gè)ElseIf子句,但最多只有一個(gè)Else子句。

      當(dāng)然,還可以使用嵌套的If-Then-Else結(jié)構(gòu),即一個(gè)If-Then-Else結(jié)構(gòu)嵌套于另一個(gè)If-Then-Else結(jié)構(gòu)中。例如,將上例改寫為:

      Sub testIf7()

      If Range(“A1”).Value = 0 Then

      MsgBox “單元格A1的值不能為0”

      Else

      If Range(“A1”).Value <= 10Then

      Range(“B1”).Value = 20 /Range(“A1”).Value

      Else

      Range(“B1”).Value = 100 /Range(“A1”).Value

      End If

      End If

      End Sub

      實(shí)現(xiàn)的效果相同,但是應(yīng)特別注意If與Else和End If的配對(duì)正確。

      下面舉一個(gè)例子,說明If-Then結(jié)構(gòu)的應(yīng)用。

      如下表所示的規(guī)則,根據(jù)員工的工齡來確定員工的年休假天數(shù):

      工齡(年)年休假天數(shù)

      10年及以下5

      10~2010

      20~2515

      25年以上20

      轉(zhuǎn)換成VBA代碼如下:

      Sub NianXiuTian()

      Dim lngDays As Long

      Dim lngYears As Long

      lngYears = Range(“A1”).Value

      ‘根據(jù)工齡確定相應(yīng)的年休天數(shù)

      If lngYears >= 0 And lngYears <= 10Then

      lngDays = 5

      ElseIf lngYears > 10 And lngYears <=20 Then

      lngDays = 10

      ElseIf lngYears > 20 And lngYears <=25 Then

      lngDays = 15

      Else

      lngDays = 20

      End If

      MsgBox “工齡:” &lngYears & vbCrLf & “年休天數(shù):” &lngDays

      End Sub

      此時(shí),您可以在工作表單元格A1中輸入代表工齡的數(shù)字,運(yùn)行代碼后,會(huì)顯示相應(yīng)的年休天數(shù),如下圖所示。

      最后,將If-Then語句結(jié)構(gòu)及其變形歸納如下:

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:直播平臺(tái)系統(tǒng)搭建(如何搭建直播服務(wù)器平臺(tái))
      下一篇:如何在表中快速的查找重復(fù)字(快速查詢表格重復(fù)內(nèi)容)
      相關(guān)文章
      亚洲乱码日产精品BD在线观看| 亚洲日本中文字幕| 亚洲av永久无码精品秋霞电影影院 | 亚洲综合精品香蕉久久网97| 国产精品亚洲专区无码不卡| 亚洲av成人无码网站…| 精品国产成人亚洲午夜福利| 精品久久亚洲中文无码| 亚洲综合伊人制服丝袜美腿| 亚洲乱码一二三四区国产| 亚洲免费网站在线观看| 亚洲丰满熟女一区二区v| 亚洲av乱码一区二区三区香蕉| 亚洲国产成人精品无码区在线网站| 亚洲第一香蕉视频| 亚洲午夜国产精品无卡| 亚洲三级高清免费| 亚洲老熟女五十路老熟女bbw| 亚洲日产乱码一二三区别 | 亚洲人色大成年网站在线观看| 亚洲精品美女视频| 亚洲一区二区三区在线| 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 亚洲乱码一区二区三区在线观看 | 亚洲国产成人影院播放| 亚洲人成无码www久久久| 伊人久久亚洲综合| 亚洲成AV人在线播放无码| 亚洲天堂中文字幕| 亚洲中文久久精品无码1| 最新亚洲精品国偷自产在线| 亚洲av永久无码一区二区三区 | 亚洲av无码专区在线电影| 无码天堂亚洲国产AV| 亚洲精品国产va在线观看蜜芽| 国产成人亚洲精品狼色在线| 亚洲Av无码专区国产乱码DVD | 亚洲精品美女久久7777777| 香蕉视频亚洲一级| 国产亚洲美女精品久久久| 亚洲AV无码专区国产乱码4SE|