Excel VBA每当单元格更改为YES更改为否时,会自动运行宏观



是否有一种简单的方法可以在更改单元格时自动执行宏观?

Sub Change()
If Range("E94").Value = "no" Then
    Rows("95:118").EntireRow.Hidden = True
ElseIf Range("E94").Value = "yes" Then
    Rows("95:118").EntireRow.Hidden = False
End If
End Sub

如果某人将E94中的值从"否"(标准)更改为"是",则应从" 95-118"中"弹出"单元格。如果我从"是"更改为"否",它们应该消失。

您可以使用Worksheet_Change事件,对于您希望该代码运行的相关表。

在您的情况下,如果您只想在更改" e94"单元格时运行此代码,则需要检查某些单元格是否已更改,请使用该行进行:

If Not Intersect(Target, Range("E94")) Is Nothing Then

代码

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E94")) Is Nothing Then
    If Target.Value = "no" Then
        Rows("95:118").EntireRow.Hidden = True
    ElseIf Target.Value = "yes" Then
        Rows("95:118").EntireRow.Hidden = False
    End If
End If
End Sub

使用Worksheet_change事件:

Private Sub Worksheet_Change(ByVal Target As Range)
'Call your Sub here
End Sub

另外,您可以使用事件的目标范围:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False,False) = "E94" Then
    If Target.Value = "no" Then
        Rows("95:118").EntireRow.Hidden = True
    ElseIf Target.Value = "yes" Then
        Rows("95:118").EntireRow.Hidden = False
    End If
End If
End Sub

最新更新