有一個簡單的辦法讓Excel將自動執行宏每當小區改變?Excel的VBA宏運行時自動細胞改變
在該小區將是Worksheet("BigBoard").Range("D2")
我以爲會是一個簡單的谷歌查詢被證明是更復雜 - 每個樣本涉及相交(不管這些是)或顏色格式或其他一些事情這似乎是無關緊要的。
有一個簡單的辦法讓Excel將自動執行宏每當小區改變?Excel的VBA宏運行時自動細胞改變
在該小區將是Worksheet("BigBoard").Range("D2")
我以爲會是一個簡單的谷歌查詢被證明是更復雜 - 每個樣本涉及相交(不管這些是)或顏色格式或其他一些事情這似乎是無關緊要的。
是的,這可以通過使用工作表事件:
在Visual Basic編輯器中打開你的在樹中的工作表的名稱通過雙擊感興趣的(即「BigBoard」)的工作表左上角。將模塊中下面的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub
Application.EnableEvents = False 'to prevent endless loop
On Error Goto Finalize 'to re-enable the events
MsgBox "You changed THE CELL!"
Finalize:
Application.EnableEvents = True
End Sub
另一種選擇是
Private Sub Worksheet_Change(ByVal Target As Range)
IF Target.Address = "$D$2" Then
MsgBox("Cell D2 Has Changed.")
End If
End Sub
我相信這比使用資源Intersect
少,如果你的工作改變了很多,這將是有幫助的。
更簡單,沒有我在選定答案中提到的錯誤。 – alej27 2017-02-26 17:18:45
在試圖找到一種方法,使對交叉方法的名字表陣列的靶細胞,我碰到一個簡單的方法時偶然發現在一個特定的變化片設置細胞的任何細胞或運行的東西。此代碼也放置在工作表模塊中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 0 Then
'mycode here
end if
end sub
使用Peter Albert的答案。不要害怕交叉線,這就是爲什麼VBA知道你正在監視哪些單元格的變化。並且他擁有MsgBox的地方,這就是你稱之爲宏的地方。這是最簡單的方法。的[在小區改變自動執行的Excel宏] – Dan 2013-03-11 11:12:42
可能重複(http://stackoverflow.com/questions/409434/automatically-execute-an-excel-macro-on-a-cell-change) – MackM 2015-08-12 18:31:38
請你標記爲你工作的答案,所以這個問題不再顯示爲未答覆?先謝謝你! – 2015-11-09 10:11:09