触发具有不同工作表中的更改的宏

时间:2018-08-17 15:32:35

标签: excel vba excel-vba

对任何不正确的术语表示歉意,这是我第一次尝试对宏进行编码。我目前正在运行以下代码:

Private Sub Worksheet_Deactivate()
'Alpha Show / Hide
If Sheets("Project_selection").Range("D4") = Range("C2") Then
    Sheet3.EnableCalculation = True
ElseIf Sheets("Project_selection").Range("D4") = "All" Then
    Sheet3.EnableCalculation = True
    Else
        Sheet3.EnableCalculation = False
End If
End Sub

已从其他代码和Google拼凑而成。它有效,但是仅当我移出工作表时(我认为这是第一行驱动的)。

我实际上希望它在“ Project_selection”表(代码所在的表的另一表)中的Cell D4更改时激活-有人知道我会怎么做吗?我已经看到了对worksheet_change的引用,但是我不明白如何定义目标/范围以获取适当的引用。

希望如此,并预先感谢!

1 个答案:

答案 0 :(得分:2)

如果要在工作表(Project_selection)下放置以下代码,则每次单元格D4中发生更改时都会触发该事件:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet: Set ws = Sheets("Project_selection")
    If Target.Address = "$D$4" Then
        If ws.Range("D4") = ws.Range("C2") Then
            Sheet3.EnableCalculation = True
        ElseIf ws.Range("D4") = "All" Then
            Sheet3.EnableCalculation = True
        Else
            Sheet3.EnableCalculation = False
        End If
    End If
End Sub