是否有一种简单的方法可以让Excel在更改单元格时自动执行宏?
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中的值从“no”(标准)更改为“yes”,则应该“弹出”“95 - 118”中的单元格。 如果我从“是”改回“否”,它们就会消失。
答案 0 :(得分:2)
您可以将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
答案 1 :(得分:1)
使用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