好上學(xué),職校招生與學(xué)歷提升信息網(wǎng)。

分站導(dǎo)航

熱點關(guān)注

好上學(xué)在線報名

在線咨詢

8:00-22:00

當(dāng)前位置:

好上學(xué)

>

職校資訊

>

學(xué)習(xí)經(jīng)驗

then用法總結(jié)(then怎么用)

來源:好上學(xué) ??時間:2022-08-18

下面是《做一個計劃清單里面的代碼》

Sub 刪除已經(jīng)完成的任務(wù)()

Dim arr, n

arr = Sheet1.Range("a6:b105")

For n = 1 To UBound(arr)

If arr(n, 1) = "完成" Then arr(n, 2) = ""

Next n

Sheet1.Range("a6:b105") = arr

i = Sheet1.Range("b" & Rows.Count).End(xlUp).Row

For n = i To 6 Step -1

If Cells(n, 2) = "" Then

Rows(n).Delete

End If

Next n

End Sub


上述代碼有兩處用到了If……Then:

1.If arr(n, 1) = "完成" Then arr(n, 2) = ""

2.If Cells(n, 2) = "" Then

Rows(n).Delete

End If

第二個If 的循環(huán)語句,修改成如下代碼,從而達到同樣的目的

If Len(Cells(n, 2)) Then Else Rows(n).Delete

。

總結(jié)一下,上面3個例子的差異。

1:第一個代碼沒有 end if;

2:第二個代碼,分了三行;

3:第三個代碼,沒有比較運算符 即“=”號

那么為什么會有以上的差別呢?通常If …… Then 語句的語法有兩種:1:橫向一句表達時的語法:

If [條件] Then [真語句] Else [假語句]

中間可以使用任意【:】連接多層語句: If [條件] Then [真語句-1:真語句-2:真語句-3] Else [偽語句-1:偽語句-2:偽語句-3:偽語句-4]

2.多行表達:(標(biāo)準(zhǔn)的形式)

If [條件] Then

[真語句]

Else

[假語句]

End If

如果沒有假語句,可以簡寫成

If [條件] Then

[真語句]

End If

兩種表達式,唯一的區(qū)別就是橫向?qū)懙臅r候,可以沒有End if語句結(jié)尾。而標(biāo)準(zhǔn)的語句,必須要End if結(jié)尾,或者程序會報錯。

那么為什么第三個If …… Then 沒有比較運算符也可以呢?因為我們常規(guī)進行判斷的時候,都是用<、>、=等具有比較意義的值。

其實If …… Then的函數(shù)的本質(zhì),只是判定條件語句的返回結(jié)果是True或者Fales。除了比較運算符,還有很多函數(shù)可以返回Boolean的值。如:

IsNumeric(Num) 判斷是否數(shù)字

IsDate(Date) 判斷是否日期

IsError(temp) 判斷是否錯誤值

IsArray(arr) 判斷是否數(shù)組

IsEmpty(temp) 判斷變量是否為空值

另外,微軟工程師引入了直接把數(shù)值用作比較判斷結(jié)果的隱形處理方法:

  • 如果表達式計算結(jié)果是數(shù)值 0 則視作滿足 條件=False
  • 如果表達式計算結(jié)果不是數(shù)值 0 而是任意其它數(shù)值,則視作滿足 條件=True

len函數(shù)就是取單元格的字符長度。當(dāng)單元格有無字符的時候,數(shù)值會大于0,則為False ,運行Else后面的假語句。否者就運行,真語句。

當(dāng)然If …… Then還有多重判斷的語句,如If …… Then else IF ……等,本篇就不深入研究了。

分享:

qq好友分享 QQ空間分享 新浪微博分享 微信分享 更多分享方式
(c)2025 vxtrzfn.cn All Rights Reserved SiteMap 聯(lián)系我們 | 浙ICP備2023018783號