簡體   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