標題:
[發問]
Is Nothing與Empty的用法
[打印本頁]
作者:
acdx
時間:
2013-9-26 16:12
標題:
Is Nothing與Empty的用法
要確認某一陣列是否存在時該用什麼方法判斷?
ReDim HeadSone(20)
t1 = 0
t2 = 0
j = 0
For fsi = 15 To 238
If Cells(fsi, 5) = Cells(fsi + 1, 5) And Cells(fsi, 5) <> Cells(fsi - 1, 5) Then t1 = fsi
If Cells(fsi, 5) = Cells(fsi - 1, 5) And Cells(fsi, 5) <> Cells(fsi + 1, 5) Then t2 = fsi
If t1 <> 0 And t2 <> 0 Then
Set HeadSone(j) = Range(Cells(t1, 5), Cells(t2, 5))
HS_S(j) = t1
HS_E(j) = t2
j = j + 1
t1 = 0
t2 = 0
End If
Next fsi
m = j - 1 '共有m-1組
If HeadSone(0) = Empty Then '判斷HeadSone(0)是否存在
m = 0
Else
m = j - 1 '共有m-1組
End If
ReDim Preserve HeadSone(m)
當HeadSone(0)不存在時上述寫法OK,可是當HeadSone(0)不存在時上述寫法就會出現錯誤(型態不符合)
改成:
If HeadSone(0) = Is Nothing Then
m = 0
Else
m = j - 1 '共有m-1組
End If
當HeadSone(0)不存在時則會出現錯誤(此次需要物件),可是當HeadSone(0)不存在時該寫法就OK
請問Is Nothing與Empty的用法有何不同?該如何改?
作者:
stillfish00
時間:
2013-9-26 16:46
本帖最後由 stillfish00 於 2013-9-26 16:48 編輯
回復
1#
acdx
你可以改為 ReDim HeadSone(0 to 20) As Range
就可以直接用 If HeadSone(0) Is Nothing 判斷
作者:
c_c_lai
時間:
2013-9-26 17:50
回復
1#
acdx
這網站資訊蠻值得你參考:
w3schools.com
作者:
GBKEE
時間:
2013-9-27 18:04
回復
1#
acdx
Set HeadSone(0) = Nothing
If HeadSone(0) Is Nothing Then
複製代碼
ReDim Preserve HeadSone(m)
If TypeName(HeadSone(0)) = "Empty" Then
複製代碼
作者:
acdx
時間:
2013-9-30 17:40
回復
4#
GBKEE
另外
若是我想將HeadSone(m)全數清空
Set HeadSone(0)=Nothing
Set HeadSone(1)=Nothing
Set HeadSone(2)=Nothing
....
該如何寫比較好?
作者:
GBKEE
時間:
2013-9-30 18:07
回復
5#
acdx
Erase 陳述式來將固定大小的陣列重新初始化,或將動態陣列的記憶空間釋放出來。
複製代碼
Option Explicit
Sub Ex()
Dim HeadSone(1 To 5) '靜態陣列:指定陣列元素,下限=1,上限=5
HeadSone(1) = 0
MsgBox TypeName(HeadSone(1))
HeadSone(1) = "AA"
MsgBox TypeName(HeadSone(1))
Erase HeadSone '清空陣列的元素:靜態陣列:指定陣列元素,下限=1,上限=5
MsgBox TypeName(HeadSone(1))
End Sub
Sub Ex1()
Dim HeadSone() '動態陣列:尚未指定陣列元素下限,上限數
ReDim HeadSone(1 To 5) '重新指定陣列元素下限,上限數
MsgBox TypeName(HeadSone(1))
HeadSone(1) = 0
'Erase HeadSone ' '將動態陣列的記憶空間釋放出來,回到動態陣列:尚未指定陣列元素下限,上限數
' MsgBox TypeName(HeadSone(1)) '錯誤:陣列沒有元素 *****
ReDim HeadSone(1 To 5) '重新指定陣列元素下限,上限數 = 清空陣列的元素
MsgBox TypeName(HeadSone(1))
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)