vba 数组如何重新定义数组大小?
Subshaixuan()Dimarr,brr()Range("F1")="Name"Range("G1")="Price"arr=Range("A2:B6")ReDim...
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下面连续写入不为空的数据?
感谢大神帮忙。 展开
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下面连续写入不为空的数据?
感谢大神帮忙。 展开
1个回答
展开全部
将你的代码修改为以下,利用变量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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |