Excel VBAvariables数组可重用,必须被擦除?

我有一个技术问题:

我的问题:我创build一个

Dim arrTemp as Variant Dim wbSource as workbook Dim wbTarget as workbook 

因为我需要将多个工作表(不是固定范围)的多个范围导出到另一个工作簿。 我的代码如下所示:

 ' Worksheet 1 arrTemp = wbSource(1).Range("A1:B2").value wbTarget(1).Range("A1:B2").value = arrTemp If Not(IsArrayEmpty(arrTemp)) Then Erase arrTemp ' Worksheet 2 arrTemp = wbSource(2).Range("A1:B2").value wbTarget(2).Range("A1:B2").value = arrTemp If Not(IsArrayEmpty(arrTemp)) Then Erase arrTemp ' Worksheet 3 arrTemp = wbSource(3).Range("A1:B2").value wbTarget(3).Range("A1:B2").value = arrTemp If Not(IsArrayEmpty(arrTemp)) Then Erase arrTemp 

(工作表可以是空的,这就是为什么空arr处理程序)(工作表可以包含int / str / double / …和大小是不是很大,以定义特定的ARRtypes)

我的问题是:每次擦除数组是否有意义? 或者它会被自动覆盖?

我做了一个testing,以检查数组的属性(Lbound&UBound)之前和之后定义一个新的范围数组。 我可以看到它自动重新排列数组。 这是否意味着我只需要在程序结束时清除它?

或者在两者之间清除它是一个好习惯?

最后但并非最不重要的,你是否看到我的代码中有任何问题? 更好的方式来执行此任务?

提前谢谢了!

编辑:记住这个任务的代码是不正确的,不需要转移到一个数组!

总之(感谢rory!):

每次都不需要擦除arrays。 只有在离开程序之前。