返回列表 上一主題 發帖

[發問] vba新手發問

S = S + 1 是多餘的

Sub iif2()
    Dim arr, i
    arr = Range([a20], [a65536].End(3))
    For i = 1 To UBound(arr)
        If arr(i, 1) >= 100 Then
            arr(i, 1) = "通過"
        ElseIf arr(i, 1) >= 0 Then
            arr(i, 1) = "不通過"
        Else
            arr(i, 1) = ""
        End If
    Next
    [c20].Resize(UBound(arr)) = arr
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

Select Case  來替代 If else
Sub iif4()
    Dim arr, i
    arr = Range([a20], [a65536].End(3))
    For i = 1 To UBound(arr)
        Select Case arr(i, 1)
        Case Is >= 100
            arr(i, 1) = "通過"
        Case Is >= 0
            arr(i, 1) = "不通過"
        Case Else
            arr(i, 1) = ""
        End Select
    Next
    [c20].Resize(UBound(arr)) = arr
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復  ML089

謝謝ML089大大~
    Select Case用途有比較廣嗎?
wayne0303 發表於 2021-9-7 17:55


若是一個變數只有2~3種判斷,用 IF 比較簡單,3個以上判斷可以考慮用 Select Case
像下列範例之多項判斷用IF就很累吧!

Select Case number
    Case 1 To 5
        Debug.WriteLine("Between 1 and 5, inclusive")
        ' The following is the only Case clause that evaluates to True.
    Case 6, 7, 8
        Debug.WriteLine("Between 6 and 8, inclusive")
    Case 9 To 10
        Debug.WriteLine("Equal to 9 or 10")
    Case Else
        Debug.WriteLine("Not between 1 and 10, inclusive")
End Select
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題