[VBA ] IF NOT xxx IS NOTHING..

看板Visual_Basic作者 (想不出來...)時間6年前 (2018/07/23 10:18), 編輯推噓1(107)
留言8則, 3人參與, 6年前最新討論串1/1
各位大大 週一早安~ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("D4")) Is Nothing Then Call ProgramA End If End If End Sub 這是網路上找到的VBA code "選取到 D4儲存格 就會跑 ProgramA" 我是想改成 只要選取到 B2到B10 此範圍的任一格(多格不行) 就執行 ProgramA 但不太懂 IF NOT ... IS NOTHING 這意思~? 是指說 這對象中沒有空值的話嗎? 還有這種 Worksheet_SelectionChange 或 WorksheetChange 後面的 (ByVal Target As Range) Target是指什麼呢? 感謝您! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.103.74 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1532312338.A.CCD.html

07/23 10:34, 6年前 , 1F
1: 前面有一個intersect 很容易看出來意思是判斷Target
07/23 10:34, 1F

07/23 10:35, 6年前 , 2F
和D4沒有交集 也就是Target不包括D4
07/23 10:35, 2F

07/23 10:36, 6年前 , 3F
2: 那個事件會固定送給你Target參數 內容當然就是發生
07/23 10:36, 3F

07/23 10:36, 6年前 , 4F
事件的格位物件 詳情執行中用watch看一下就知道了
07/23 10:36, 4F

07/23 14:58, 6年前 , 5F
運算子優先權 Is 比 Not 高, 所以是 Not (... Is Nothing)
07/23 14:58, 5F

07/23 14:59, 6年前 , 6F
不過剛才翻了一下 MSDN, VBA 似乎有 IsNot 這個運算子
07/23 14:59, 6F

07/23 14:59, 6年前 , 7F
也就是這個其實可以寫成 ... IsNot Nothing
07/23 14:59, 7F

07/24 21:34, 6年前 , 8F
謝謝以上先進,會再研究看看。
07/24 21:34, 8F
文章代碼(AID): #1RLJiIpD (Visual_Basic)
文章代碼(AID): #1RLJiIpD (Visual_Basic)