- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2014-11-9 21:52 編輯
回復 3# hildaliu
Dim iI% ' 定義iI為Integer(整數)變數
Dim lTRow& ' 定義lTRow為Long(長整數)變數
Dim rTar As Range ' 定義rTar為儲存格指標
Dim shSou As Worksheet ' 定義shSou為工作表指標
Set shSou = Sheets("OrderForm") ' 設定指標shSou指向OrderForm工作表
With Sheets("OrderData") ' 設定系統預設指標 . 的標的, 底下以 . 開頭的物件或變數中, 其 . 代表OrderData工作表,直到 End With 為止, Cells指令用於表示儲存格, 其格式為 Cells(列號,欄號)
lTRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1 ' 設定lTRow的值等於 .(即OrderData工作表) 中第2(即B)欄的最底下一個有資料儲存格的列號,
' Cells(Rows.Count, 2)=B欄最末列, .End(xlUp) 往上找第一個有資料的儲存格, .Row 取得其列號
For iI = 17 To 19 ' 設定 iI(此處用於列號)的初值為17, 接著執行後續指令,遇到Next時,先將iI加1後再返回此行執行,迴圈內指令重複執行直到 iI 大於 To 後面的數字(本例為19),再接續執行Next後的指令
Set rTar = shSou.Cells(iI, 3) ' 設定rTar=shSou(即OrderForm工作表)的第3(即C)欄第iI列儲存格
Select Case rTar ' 底下將依據 rTar 的值做分支處理
Case "Red" ' 當rTar="Red"時執行底下的指令直到 Case 或 End Select
.Cells(lTRow, 2) = rTar.Offset(, 2) ' 設定OrderData工作表的 B欄第lTRow列=rTar向右位移兩欄(即OrderForm工作表的E欄第iI列儲存格)
Case "White" ' 當rTar="White"時執行底下的指令...
.Cells(lTRow, 3) = rTar.Offset(, 2) ' 同上 C欄第lTRow列=...
Case "Mixed" ' 當rTar="Mixed"時執行底下的指令...
.Cells(lTRow, 4) = rTar.Offset(, 2) ' 同上 D欄第lTRow列=...
End Select ' 選擇性分支指令結束
Next ' 繼續執行下一個 For 指令條件判斷, 以決定是否繼續執行迴圈內的指令
End With ' With 區塊結束,系統預設指標.的標的指向解除,若上層還有.的指向定義,從之. |
|