W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
將一個If…Then語句或If…Then…Else語句放在另外一個If…Then語句或If…Then…Else語句里面,你可以在你的VBA過程里作出更復雜的決定。這種一個If語句里包含另一個If指令塊的結構稱為嵌套的If語句。接下來的過程TestConditions是上節(jié)里的過程WhatValue的修正版,演示嵌套的If…Then語句是如何工作的:
Sub TestConditions()
Range("A1").Select
If IsEmpty(ActiveCell) Then
MsgBox "The cell is empty."
Else
If IsNumeric(ActiveCell.Value) Then
If ActiveCell.Value = 0 Then
ActiveCell.Offset(0, 1).Value ="zero"
ElseIf ActiveCell.Value > 0 Then
ActiveCell.Offset(0, 1).Value ="positive"
ElseIf ActiveCell.Value < 0 Then
ActiveCell.Offset(0, 1).Value ="negative"
End If
Else
ActiveCell.Offset(0, 1).Value = "text"
End If
End If
End Sub
為了使過程TestConditions更容易理解,每個If…Then語句都顯示為不同的格式,現在你可以清楚地看到過程使用了三個If…Then程序塊。
第一個If塊(粗體)檢查當前單元格是否為空,如果為真,就會顯示信息,然后VB將跳過Else部分找到相應的End If,該語句位于關鍵字End Sub之前。
如果當前單元格不為空,IsEmpty(ActiveCell)條件返回假,并且VB運行粗體Else下面的單下劃線的If塊。該單下劃線的If…Then…Else語句就是嵌套在第一個If塊(粗體)的。該語句檢查當前單元格是否是個數字。注意,我們通過另一個內置函數IsNumeric來做這個。如果當前單元格的值不是一個數字,條件就為假,因此,VB跳到單下劃線的Else處,并且在B1里輸入“text”。然而,如果當前單元格包含個數字時,VB就會運行雙下劃線的If塊,評估每種情況并作出相應的決定。
第一個If塊(粗體)被稱為外部If語句,這個外部語句包含兩個內部的If語句(單下劃線和雙下劃線)。
技巧:嵌套語句
嵌套是指將一種控制結構放在另外一控制結構里面。你將在后面的循環(huán)結構里看到更多的嵌套的例子。
Select Case 測試表達式
Case 表達式1
如果表達式1匹配測試表達式的語句
Case 表達式2
如果表達式2匹配測試表達式的語句
Case 表達式N
如果表達式N匹配測試表達式的語句
Case Else
如果沒有表達式匹配測試表達式要執(zhí)行的語句
End Select
你在關鍵字Select Case和End Select之間放置任意多個條件以測試。子句Case Else是可選的,當你希望可能有條件表達式返回假時使用它。在Select Case語句里,VB將每個表達式和測試表達式相比較。Sub TestButtons()
Dim question As String
Dim bts As Integer
Dim myTitle As String
Dim myButton As Integer
question = "Do you want to open a new workbook?"
bts = vbYesNoCancel + vbQuestion + vbDefaultButton1
myTitle = "New Workbook"
myButton = MsgBox(prompt:=question, buttons:=bts, _ title:=myTitle)
Select Case myButton
Case 6
Workbooks.Add
Case 7
MsgBox "You can open a new book manually later."
Case Else
MsgBox "You pressed Cancel."
End Select
End Sub
Select Case myButton
Case vbYes
Workbooks.Add
Case vbNo
MsgBox "You can open a new book manually later."
Case Else
MsgBox "You pressed Cancel."
End Select
Select Case myButton
Case vbYes
Workbooks.Add
Case vbNo
MsgBox "You can open a new book manually later."
Case vbCancel
MsgBox "You pressed Cancel."
End Select
4. 運行過程TestButtons三次,每次選擇一個不同的按鈕。Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: