Board logo

標題: Worksheet_Change(ByVal Target As Range) 問題 [打印本頁]

作者: enoch    時間: 2013-6-11 12:18     標題: Worksheet_Change(ByVal Target As Range) 問題

當使用 Worksheet_Change(ByVal Target As Range)
如何設定 Target = Range("A1:B10") 範圍以內 任何一個儲存格

另外當Worksheet_Change程式進行中,
會在同一工作表中有資料抄寫動作 Range("A1:B10") 範圍以外,
可否暫停不會再引發Worksheet_Change事件,
請指教
作者: kimbal    時間: 2013-6-11 13:54

回復 1# enoch


1. "當使用 Worksheet_Change(ByVal Target As Range)
如何設定 Target = Range("A1:B10") 範圍以內 任何一個儲存格"

這樣可以看每一個格子的資料:
for each c in target
   msgbox(c.value)  
next

這樣可以看TARGET中第2欄第1行格子的資料
msgbox(target.cells(1,2).value)

2. "另外當Worksheet_Change程式進行中,
會在同一工作表中有資料抄寫動作 Range("A1:B10") 範圍以外,
可否暫停不會再引發Worksheet_Change事件, "

在抄寫前後多加句代碼

    Application.EnableEvents = False
    ....抄寫動作...
    Application.EnableEvents = True
作者: GBKEE    時間: 2013-6-11 16:12

本帖最後由 GBKEE 於 2013-6-11 16:14 編輯

回復 1# enoch
  1. [code]Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
  3.         MsgBox Target.Address
  4.     End If
  5. End Sub
複製代碼
  1. Intersect 方法
  2. 請參閱套用至範例特定傳回 Range 物件,此物件代表兩個或多個範圍重疊的矩形範圍。
  3. expression.Intersect(Arg1, Arg2, ...)
  4. expression     選擇性的運算式。該運算式傳回 Application 物件。
  5. Arg1, Arg2, ...  必選的Range 物件類型。重疊的範圍。必須至少指定兩個 Range物件
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)