我确信这是一个简单的答案,但我不熟悉VBA中的案例。我要做的是创建一个监视特定单元格以进行更改的案例。
如果发生对指定范围的更改,则某些宏应作为对该更改的响应运行。否则,什么都不应该发生。以下是我到目前为止的情况:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case (Change)
Case Range("A1").Address
Call success
Case Else
'Do nothing
End Select
End Sub
\\\\\\\\\\\\\\\\\\\\\\
Sub success()
' success Macro
Cells(1, 10).Value = "Success!"
End Sub
问题是似乎没有任何事情发生。请注意,这只是一个了解案例等的测试。一旦我获得了解决方案,我希望将其扩展到更复杂的东西。
我觉得它与"选择案例(变更)"有关。部分代码,但我不确定。请不要使用if / else语句回答这个问题,我非常希望以案例的形式。谢谢!
答案 0 :(得分:3)
Select Case Target.Address(0, 0)
Case "A1": Call success
Case "A2": Call DoSomething
Case Else: Call OtherAction
End Select
注意强>
Target
参数:
答案 1 :(得分:2)
一个简洁的例子看起来像那样
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const CELL1 = "A1"
Const CELL2 = "C2"
Const CELL3 = "D3"
Dim rg As Range
On Error GoTo ExitSub
Application.EnableEvents = False
Set rg = Union(Range(CELL1), Range(CELL2), Range(CELL3))
If Intersect(rg, Target) Is Nothing Then
' Do nothing
Else
Select Case Target.Address(0, 0)
Case CELL1
Call success(1)
Case CELL2
Call success(2)
Case CELL3
Call success(3)
Case Else
'Do nothing
End Select
End If
ExitSub:
Application.EnableEvents = True
End Sub
Sub success(i As Long)
' success Macro
Cells(i, 10).Value = "Success!"
End Sub