繁体   English   中英

Excel vba变种数组可重用,必须擦除吗?

[英]Excel vba variant array reusable, must be erased?

我有一个技术问题:

我的问题:我创建了一个

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 / ...并且大小不是很大,无法定义特定的arr类型)

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

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

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

最后但同样重要的是,您在我的代码中看到任何问题吗? 更好的方法来执行此任务?

提前谢谢了!

编辑:请记住此任务的代码不正确,无需转移到数组!

简而言之(感谢rory!):

无需每次都擦除阵列。 只有在离开程序之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM