Vba 使用不同工作表中的更改触发宏
对任何不正确的术语表示歉意,这是我第一次尝试编写宏代码。我目前正在运行以下代码:Vba 使用不同工作表中的更改触发宏,vba,excel,Vba,Excel,对任何不正确的术语表示歉意,这是我第一次尝试编写宏代码。我目前正在运行以下代码: 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" Th
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
这是由其他代码和谷歌拼凑而成的。这是可行的,但只有当我离开工作表时,我认为这是由第一行驱动的
实际上,我希望它在“项目选择”表(代码所在的单独表)中的单元格D4发生更改时激活-有人知道我会怎么做吗?我看到对工作表的引用发生了变化,但我不理解如何定义目标/范围以获得适当的引用
希望这是有意义的,并提前感谢 如果要将以下代码放在工作表(项目_选择)下,则每当单元格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
非常感谢!但是,如果我想添加一个新的工作表,并且结果与我需要添加到该宏的结果相同(工作表4所示),那么我是否正确?如果是这样的话,问题是其他人将使用它,他们根本不使用宏,因此将无法更新。这就是为什么我希望为每个选项卡分配一个宏,在复制时,该宏将维护代码。@Padlilly115您可以做的是,将此代码添加到工作簿中,并对其稍加修改,以便在任何工作表中的给定单元格中发生更改时,它将运行,但这将取决于你想省略和包含多少张纸。这实际上是一个非常简单但绝妙的想法,我会看看我是否能让它起作用。非常感谢你的帮助。