![](/img/trans.png)
[英]How to convert string type array to variant type array - 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.