Board logo

標題: [發問] 幫忙註解一下,謝謝! [打印本頁]

作者: olisun    時間: 2010-8-20 14:06     標題: 幫忙註解一下,謝謝!

本帖最後由 olisun 於 2010-8-20 15:57 編輯

幫忙註解一下,謝謝!
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$E$2" Then Exit Sub
Dim i&, Myr&, col%, Arr, Arr1(1 To 6, 1 To 12), Arrth
Application.ScreenUpdating = False
Myr = Sheets("成交客戶").[a65536].End(xlUp).Row
Arr = Sheets("成交客戶").Range("a3:r" & Myr)
Arrth = Sheets("退戶客戶").[a1].CurrentRegion-------這一句是甚麼意思
For col = 1 To UBound(Arr, 2) Step 6-------這一句是甚麼意思
    For i = 1 To UBound(Arr)-------這一句是甚麼意思
        If Arr(i, col) = "" Then Exit For
        If Arr(i, col) < Target.Value Then
作者: chiahuo    時間: 2010-8-20 14:47

沒寫註解什麼,看來只有高手中高手才知道
作者: jackdream    時間: 2010-8-20 14:56

幫忙註解一下,謝謝!
Application.ScreenUpdating = False '不触發其它事件的代碼
olisun 發表於 2010-8-20 14:06


Application.ScreenUpdating = False '不触發其它事件的代碼
這句應該是..關掉螢幕更新(程式運作時,畫面不會跟著更換,可以增快一些速度)

如果是要關掉觸發事件..
可改用 Application.EnableEvents = False
作者: jackdream    時間: 2010-8-20 16:46

幫忙註解一下,謝謝!
Arr = Sheets("成交客戶").Range("a3:r" Myr)
Arrth = Sheets("退戶客戶").[a1].CurrentRegion-------這一句是甚麼意思
For col = 1 To UBound(Arr, 2) Step 6-------這一句是甚麼意思
    For i = 1 To UBound(Arr)-------這一句是甚麼意思
olisun 發表於 2010-8-20 14:06


試著解釋看看,如有錯誤,還請諸位大大修正,感謝!

Arr = Sheets("成交客戶").Range("a3:r" Myr)
'這句應該修正為 Arr = Sheets("成交客戶").Range("a3:r" & Myr)

Arrth = Sheets("退戶客戶").[a1].CurrentRegion
'將 Sheets("退戶客戶") 有資料的區域放入 Arrth 裡面

For col = 1 To UBound(Arr, 2) Step 6
'依據 (Arr,2) 的內容,放入 col 裡面,每次間隔為 6
'第一筆 col 為 Sheets("成交客戶") 在 B3 欄位的值,第二筆為 B9 欄位的值..以此類推

For i = 1 To UBound(Arr)
'依照陣列資料筆數進行作業
'假設 Arr 共有 10 筆,則進行 10 次迴圈
'若依您的程式,迴圈次數決定於 Sheets("成交客戶").[a65536].End(xlUp).Row -2
作者: Hsieh    時間: 2010-8-20 18:18

本帖最後由 Hsieh 於 2012-3-14 08:23 編輯

CurrentRegion
傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍
Arrth = Sheets("退戶客戶").[a1].CurrentRegion
就是把跟a1儲存格相連的範圍存成陣列Arrth
For col = 1 To UBound(Arr, 2) Step 6
因為Arr是A3:R?這範圍的陣列
所以是Arr(1 TO ?-3,1 TO 18)這是因為由範圍直接寫入陣列所以下標從1開始
UBound(Arr, 2)就是Arr的第2維上標界就等於18
Step 6就是每次跳6欄
For i = 1 To UBound(Arr)
UBound(Arr)就是第一維上標界
就是依照每列資料一一跑完
作者: olisun    時間: 2010-8-20 18:46

謝謝二位大哥的解說




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)