返回列表 上一主題 發帖

[發問] vba新手發問

[發問] vba新手發問

請問我寫了一個基本的if迴圈,要怎麼讓判斷的結果跟著資料來源移動

謝謝

活頁簿1.rar (20.22 KB)

Dim arr, i, s%
arr = Range([a20], [a65536].End(3))
For i = 1 To UBound(arr)
s = s + 1
         If arr(i, 1) >= 100 Then
            Cells(i + 19, 4) = "通過"
        ElseIf (arr(i, 1) < 100) * (arr(i, 1) >= 0) Then
            Cells(i + 19, 4) = "不通過"
        Else
            Cells(i + 19, 4) = ""
        End If
    Next
    [c20].Resize(UBound(arr)) = arr
End Sub
杜小平

TOP

本帖最後由 samwang 於 2021-9-7 12:25 編輯

回復 1# wayne0303

要怎麼讓判斷的結果跟著資料來源移動>> 把比對後的結果又裝回arr,謝謝

Sub test()
Dim arr, i, s%
arr = Range([a20], [a65536].End(3))
For i = 1 To UBound(arr)
s = s + 1
         If arr(i, 1) >= 100 Then
            arr(s, 1) = "通過"
        ElseIf (arr(i, 1) < 100) * (arr(i, 1) >= 0) Then
            arr(s, 1) = "不通過"
        Else
            arr(s, 1) = ""
        End If
    Next
    [c20].Resize(UBound(arr)) = arr
End Sub

TOP

回復 2# dou10801



謝謝dou10801大大~

TOP

回復  wayne0303

要怎麼讓判斷的結果跟著資料來源移動>> 把比對後的結果又裝回arr,謝謝

Sub test( ...
samwang 發表於 2021-9-7 12:21



arr(s, 1) ←原來是改這個,我搞好久...

謝謝samwang大大~

TOP

回復 4# wayne0303 samwang前輩的方法才正確,我也剛學,沒看清楚.
杜小平

TOP

回復  wayne0303 samwang前輩的方法才正確,我也剛學,沒看清楚.
dou10801 發表於 2021-9-7 13:15




還是謝謝大大願意幫我解答~

TOP

本帖最後由 samwang 於 2021-9-7 14:05 編輯

回復 6# dou10801
samwang前輩的方法才正確,
>>您客氣了,後學也是初學者,您的方法也是有達到需求,但是當資料多的話,會因為每筆資料要貼回excel效率而變慢
論壇有很多前輩大師也多是後學學習的對象,一起加油,謝謝。

TOP

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

回復 9# ML089


S = S + 1 是多餘的
咦~可以吔,謝謝ML089大大指導

Sub iif2()
    Dim arr, i
    arr = Range([a20], [a65536].End(3))
    For i ...
ML089 發表於 2021-9-7 14:08

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題