我有一个技术问题:
我的问题: 我创建了一个
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数组。这是否意味着我只需要在程序结束时清除它?
或者在两者之间清除它是一个好习惯吗?
最后但同样重要的是,您在我的代码中看到任何问题吗?更好的方法来执行这项任务?
非常感谢提前!
编辑: 记住 该任务的代码不正确,无需转移到数组!
答案 0 :(得分:0)
简而言之(感谢rory!):
无需每次都擦除数组。 只有在离开程序之前。