- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 3# j88141
Worksheet_Change事件程序,是在工作表內容改變時觸發
你在參數中設置了ByVal myRange As Range
代表改變的儲存格是myRange
你沒必要在程序內又設置Set myRange = 工作表1.Range("A1")
雖然這樣設置如果是在同一工作表內並無不可
但是,如果要在程序中用到取得當前變化之儲存格時就會喪失
猜測看看是否是你要的- Private Sub Worksheet_Change(ByVal myRange As Range)
- If Intersect(myRange, [B1:B10]) Is Nothing Then Exit Sub '變動儲存格不在B1:B10則退出程序
- Range("A1") = Application.Sum([B1:B10]) '儲存格A1 等於 SUM(B1:B10)
- If Range("A1") >= Range("E1") And Range("A1") <= Range("G1") Then
- '如果 儲存格A1 大於等於 儲存格E1 和 小於儲存格G1的話
- MsgBox Range("D1") & 和& & Range("F1"), vbOKOnly
- '顯示.....
- ElseIf Range("A1") < Range("E1") Then
- '如果儲存格A1小於儲存格E1
- Range("A1").Interior.ColorIndex = 3
- '儲存格顯示紅色
-
- ElseIf Range("A1") > Range("F1") Then
- '如果儲存格A1大於儲存格F1
- MsgBox Range("E1") & "和&" & Range("G1"), vbCritical
- '顯示.....
-
- End If
- End Sub
複製代碼 |
|