- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
本帖最後由 c_c_lai 於 2016-3-22 13:17 編輯
回復 8# 藍天麗池
Sheets - shtRTD (RTD)
原本內容:- Option Explicit
- Private Sub Worksheet_Calculate()
- Call RecordPrice
- End Sub
複製代碼 將它移除掉,修改為:- Option Explicit
- Private Sub Worksheet_Change(ByVal Target As Range)
- ' 當 B2 欄位有異動時, 則去呼叫 RecordPrice 的方法 (Method)。
- If Target.Address = "$B$2" Then Call RecordPrice
- End Sub
複製代碼 假設:
如你欲將原本之 :- A B C D
- 時間 總量
- 22:38:54 8734.54 2238 8734.54
複製代碼 更改為從 D 欄開始重新佈局成:- C D E F
- 時間 總量
- 22:38:54 8734.54 2238 8734.54
複製代碼 則將上述之 Worksheet_Change 請修正為:- Private Sub Worksheet_Change(ByVal Target As Range)
- ' 當 D2 欄位有異動時, 則去呼叫 RecordPrice 的方法 (Method)。
- If Target.Address = "$D$2" Then Call RecordPrice
- End Sub
複製代碼 另外, Module1 內之 RecordPrice 裡的模組:- Option Explicit
- Sub RecordPrice()
- Dim WR As Long
- If Range("D2") < 1 Then Exit Sub
- WR = Range("A1").End(xlDown).Row + 1
- ' ActiveWindow.ScrollRow = WR - 5 ' 只顯示最新幾筆資料
- If (WR = 3) Or _
- (Range("B" & WR - 1) <> Range("B2")) Then ' 總量有異動時才記錄
- Cells(WR, 1).Resize(, 3) = [A2:C2].Value
- End If
- End Sub
複製代碼 更換為:- Option Explicit
- Sub RecordPrice()
- Dim WR As Long
- If Range("F2") < 1 Then Exit Sub
- WR = Range("C1").End(xlDown).Row + 1
- ' ActiveWindow.ScrollRow = WR - 5 ' 只顯示最新幾筆資料
- If (WR = 3) Or _
- (Range("D" & WR - 1) <> Range("D2")) Then ' 總量有異動時才記錄
- Cells(WR, 3).Resize(, 3) = [C2:E2].Value
- End If
- End Sub
複製代碼 |
|