- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
本帖最後由 c_c_lai 於 2016-5-2 07:47 編輯
回復 1# ketrddem
提供參考:
ThisWorkbook::- Sub Ex()
- [A1] = 10
- [B1] = 8
- [A1] = 6
- End Sub
複製代碼 工作表1:- Private Sub Worksheet_Calculate()
- Dim target As Range
- Set target = Range("C1")
- ' If Not Intersect(target, Range("C1")) Is Nothing Then
- If target.Value = "YES" Then
- ' Run my VBA code
- MsgBox "Worksheet_Calculate is Activvated!"
- End If
- End Sub
- Private Sub Worksheet_Change(ByVal target As Range)
- ' If Not Intersect(target, Range("C1")) Is Nothing Then
- If target.Address = "$C$1" Then
- ' MyMacro()
- MsgBox "Worksheet_Change = " & target.Address
- End If
- End Sub
複製代碼 請用 F8 來 Trace 來仔細觀察 Worksheet_Calculate() 以及
Worksheet_Change(ByVal target As Range) 是如何運作,
目前 {A1:B1] 均是以 Assign value 方式進行,但如果它們都為
公式帶入值可能 Worksheet_Change() 不會有動作,如 [C1]
內容值為: =IF(A1>B1, "YES", "NO") 一樣。
{A1:B1] 你可以帶入 DDE 公式 來觀察資料匯入時之動態狀況。 |
|