- 帖子
- 129
- 主題
- 25
- 精華
- 0
- 積分
- 159
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-24
- 最後登錄
- 2022-12-12
|
趁這個版面詢問一下,WorkSheet_Change的用法
底下分別是版主跟龍大的程式碼- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim xF As Range, xA As Range
- With Target
- If .Count > 1 Or .Columns.Count > 1 Or .Row < 2 Or .Column <> [I1].Column Then Exit Sub
- Set xA = .Cells(1, -1).Resize(1, 2): xA.ClearContents
- If .Value <> "" Then Set xF = [清單!d:d].Find(.Value, Lookat:=xlWhole)
- If Not xF Is Nothing Then xA = xF(1, -1).Resize(1, 2).Value
- End With
- End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Column <> 9 Then Exit Sub
- Application.EnableEvents = False
- 塞資料入字典
- Key$ = Target.Value
- Cells(Target.Row, 8) = 下拉選單.D(Key).用途別
- Cells(Target.Row, 7) = 下拉選單.D(Key).工作計畫
- Application.EnableEvents = True
- End Sub
複製代碼 我的問題是
一、為什麼IF的後面都不需要加上 END IF而且除錯都沒問題
二、Target指的是滑鼠點到的任何一個儲存格嗎? 因為可以取得Target.Row
或是Target.Column。
但是Private Sub Worksheet_Change(ByVal Target As Range)又把Target當RANGE ?
三、我測試了一個小程式,但是只動了一次,就沒動作了,不曉得錯在哪裡- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Column <> 3 Then Exit Sub
- Application.EnableEvents = False
- Target.Interior.ColorIndex = 3
- End Sub
複製代碼 照理說,我隨便選一個儲存格,如果該儲存格不是第3欄 (C欄)
那就離開程式
如果選到其他欄,那就會把儲存格顏色變紅色
但是就沒辦法
就算我選到的儲存格,隨便輸入123,再刪掉,這樣算是有Change了吧?
也沒動作....
四、Set xA = .Cells(1, -1).Resize(1, 2): xA.ClearContents 這邊.Resize是什麼功能?
以上詢問,謝謝 |
|