標題:
請問Range的文字給到陣列
[打印本頁]
作者:
stillfish00
時間:
2012-10-12 16:07
標題:
請問Range的文字給到陣列
1.
Dim Arr(1 to 5) as string 宣告陣列後
請問除了用loop迴圈一個一個給定外 , 有辦法一次將
Range儲存格的內容(如$A$1:$E$1)初始化給陣列嗎?
2.
如果改用Variant變數
Dim Arr as Variant
Arr= Application.Transpose(Application.Transpose(Range("$A$1:$E$1")))
Arr需不需要釋放記憶體呢? 怎麼還原它給值前的狀態?
作者:
GBKEE
時間:
2012-10-13 09:10
回復
1#
stillfish00
Q 1的答案在Q2: Arr= Application.Transpose(Application.Transpose(Range("$A$1:$E$1")))
Q2:需不需要釋放記憶體呢?
自行決定
怎麼還原它給值前的狀態?
Erase 陳述式
重新初始化固定大小陣列的元素,並釋放動態陣列的儲存空間
Option Explicit
Sub Ex()
Dim Arr As Variant
Arr = Application.Transpose(Application.Transpose(Range("$A$1:$E$1")))
Erase Arr
End Sub
複製代碼
作者:
stillfish00
時間:
2012-10-13 21:40
回復
2#
GBKEE
我用1會出現錯誤耶 , 如下圖
[attach]12765[/attach]
作者:
GBKEE
時間:
2012-10-14 07:23
本帖最後由 GBKEE 於 2012-10-14 09:05 編輯
回復
3#
stillfish00
Option Explicit
Sub Ex() '有指定陣列的元素數須一一的給值
Dim Arr(1 To 5) As Variant, i As Integer
For i = 1 To 5
Arr(i) = Application.Transpose(Application.Transpose(Range("$A$1:$E$1").Columns(i)))
Next
Erase Arr
End Sub
Sub Ex1() '動態陣列 可以 一次給所有的值
Dim Arr() As Variant '<-> Dim Arr As Variant
Arr = Application.Transpose(Application.Transpose(Range("$A$1:$E$1")))
Erase Arr
End Sub
複製代碼
作者:
stillfish00
時間:
2012-10-14 11:41
回復
4#
GBKEE
明白了 , 感謝版主回應
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)