VBA求解:行数未知,超10000行,想用VBA数组方式给对应的G列赋值,G列赋值

VBA求解:行数未知,超10000行,想用VBA数组方式给对应的G列赋值,G列赋值条件:如果LEFT(A2,2)="61" AND F2="库存",结果为"库存",否则结果为"在制"。要用数组,不然运行太慢,谢谢!

Sub dd()
Dim arr1, arr2, i As Long
arr1 = [A2].Resize([A2].End(xlDown).Row - 1, 1)
arr2 = [F2].Resize([A2].End(xlDown).Row - 1, 1)
For i = 1 To UBound(arr1)
    If Left(arr1(i, 1), 2) = "61" And arr2(i, 1) = "库存" Then
        arr1(i, 1) = "库存"
    Else
        arr1(i, 1) = "在制"
    End If
Next
[G2].Resize([A2].End(xlDown).Row - 1, 1) = arr1
End Sub

追问

结果不对,全部显示在制

追答

我试了下,没问题呀,你看看是不是你的A,F列的数据前面有空格或不可见字符,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-07
Sub G列赋值()
    Dim i%
    For i = 2 To [a65536].End(3).Row
        If Left(Cells(i, 1), 2) = "61" And Cells(i, 6) = "库存" Then Cells(i, 7) = "库存" Else Cells(i, 7) = "在制"
    Next
End Sub

本回答被网友采纳
第2个回答  2017-02-07
Sub test()
    Dim num As Integer
    'Worksheets(1)需要根据实际情况修改
    num = Worksheets(1).UsedRange.Rows.Count
    
    For i = 2 To num
        If Left(Cells(i, 1).Value, 2) = "61" And Cells(i, 6).Value = "库存" Then
            Cells(i, 7).Value = "库存"
        Else
            Cells(i, 7).Value = "在制"
        End If
    Next
    
End Sub

VBA代码如上。不知道是的Sheet页是第几个,你根据自己情况改下