我有以下代码,如果符合条件,则会向数组添加值。
它在一行中保持水平循环,然后为下一行重复相同的操作,依此类推。
我试图清除数组中累积的值并在列循环结束时将其清空:
For a = 21 To 23
Count = 0
For b = 2 To 36
If Not Worksheets("Sheet1").Cells(a, b).Value = "A" And Not Worksheets("Sheet1").Cells(a, b).Value = "B" Then
Count = Count + 1
Else
If Not Count = 0 Then
Dim arr() As Long
arrLen = 1
ReDim Preserve arr(1 To arrLen)
arr(arrLen) = Count
arrLen = arrLen + 1
For i = LBound(arr) To UBound(arr)
msg = msg & arr(i) & vbNewLine
Next i
Count = 0
End If
End If
Next b
MsgBox Worksheets("Sheet1").Cells(a, 1).Value & vbNewLine & msg
Erase arr 'not working
Next a
从上面的代码中可以看出,我得到一个msgbox,显示每个循环结束时的值,但是当它继续时,数组会越来越大,表明Erase行没有工作。
请帮忙!
答案 0 :(得分:1)
您可以使用循环将数组元素设置为空,或者 ReDim 将数组设置为:
Sub marine()
Dim arr()
ReDim arr(1 To 2)
arr(1) = "Alpha"
arr(2) = "Beta"
ReDim arr(1 To 1)
arr(1) = ""
End Sub
这样,您可以稍后在子目录中重复使用相同的数组名称。