vba 数组如何重新定义数组大小?

Sub shaixuan()
Dim arr, brr()
Range("F1") = "Name"
Range("G1") = "Price"
arr = Range("A2:B6")
ReDim brr(1 To UBound(arr), 1 To 2)
For i = 1 To UBound(arr)
If arr(i, 2) > 400000 Then
brr(i, 1) = arr(i, 1)
brr(i, 2) = arr(i, 2)
End If
Next i
MsgBox UBound(brr)
Range("F2").Resize(UBound(brr), 2) = brr
End Sub

代码如上,brr数组的结果中有空格,在写入F2的时候不满足大于400000条件的会是空值,
如何能够使F2下面连续写入不为空的数据?

感谢大神帮忙。

将你的代码修改为以下,利用变量j表示要写入brr的行数:

Sub shaixuan()
    Dim arr, brr()
    Range("F1") = "Name"
    Range("G1") = "Price"
    arr = Range("A2:B6")
    ReDim brr(1 To UBound(arr), 1 To 2)
    j = 1
    For i = 1 To UBound(arr)
        If arr(i, 2) > 400000 Then
            brr(j, 1) = arr(i, 1)
            brr(j, 2) = arr(i, 2)
            j = j + 1
        End If
    Next i
    MsgBox UBound(brr)
    Range("F2").Resize(UBound(brr), 2) = brr
End Sub

 其实你这个不用数组也能实现你要的目的,如下:

Sub shaixuan1()
    Range("F1") = "Name"
    Range("G1") = "Price"
    For i = 2 To [b65536].End(3).Row
        If Cells(i, 2) > 400000 Then
            Range(Cells(i, 1), Cells(i, 2)).Copy Range("f" & [f65536].End(3).Row + 1)
        End If
    Next
End Sub

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网