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。 只有在离开程序之前。