返回列表 上一主題 發帖

[發問] 兩表比對後將結果輸出

粗淺的說
Dim Arr, Brr(), Crr(9,9)

(1)
Arr 是Variant, 可以賦于單一元素, 或儲存格範圍成一陣列, 或Redim為一個陣列
例:Arr=9, Arr="abc", Arr=range("A1:E9"), Redim Arr(1 to 9, 1 to 3)
   不管Arr已被賦于何種型態及內容, 其後仍可直接對其賦于其它型態及內容,
   當用 Arr = Crr, 也是可以接收其它"己定義且存在"的陣列,
  
   如果被定為陣列, 最後要釋放其佔用的記憶體時, 若用 Erase Arr, 則它還是陣列型態, 只是沒有大小,
   當然, 它還是可以再賦于任何內容, 如 Arr = Empty (初始化)
__它是紙漿, 可以製成任何所需, 回收時變成紙漿

(2)
Brr(), 為陣列, 只是還沒定大小, 而且只能用于陣列, 就像一塊地已規劃蓋房子, 還沒定出蓋幾層及隔間, 除了房子不可挪作它用,
其間可以在任何時候重新定義其大小及維度, 如 Redim Brr(9),  每次重定義, 前身資料即消失,
若要保留前資料, 且擴展空間, 可用 ReDim Preserve , 但只可以改變最後一個維度的上標界,而不能改變維數。
可用 Erase Brr 釋放資料, 但後續要用, 得重新定義!!
__它是一張紙, 無法裝東西, 可以折成任何型狀及大小去裝東西, 恢復時還是一張紙!!!

(3)
Crr(9, 9) ,為固定大小的陣列, 這應不需說明, Erase Crr 釋放資料, 但只是清空內容, 大小還是一樣
__它是個紙箱, 可裝固定大小的東西, 倒掉全部再繼續用

TOP

'If UCase(xD(T)(1)) = "DR" Then
'    If Arr(i, 10) > Arr(i, 11) Then
'        Brr(M, 7) = Brr(M, 7) + Arr(i, 10)
'    Else
'        Brr(M, 7) = Brr(M, 7) + Arr(i, 11)
'    End If
' ElseIf UCase(xD(T)(1)) = "CR" Then
'    If Arr(i, 10) > Arr(i, 11) Then
'        Brr(M, 7) = Brr(M, 7) - Arr(i, 10)
'    Else
'        Brr(M, 7) = Brr(M, 7) - Arr(i, 11)
'    End If
' End If


>>>>>
If UCase(xD(T)(1)) = "DR" Then S = 1 Else S = -1
If Arr(i, 10) > Arr(i, 11) Then C = 10 Else C = 11
Brr(M, 7) = Brr(M, 7) + Arr(i, C) * S

TOP

        靜思自在 : 一個人的快樂.不是因為他擁有得多,而是因為他計較得少。
返回列表 上一主題