在循环VBA Excel结尾的空数组

我有下面的代码,如果它符合一个标准,将值添加到数组。

它通过行横向保持水平循环,然后重复相同的下一行,依此类推。

我想清除数组中积累的值,并在列循环结束时将其清空:

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显示在每个循环结束的值,但随着它继续,数组越来越大,表明擦除线路不工作。

请帮助!

您可以使用循环将数组元素设置为空值,也可以将数组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 

这样你可以重新使用相同的数组名称。