Excel隐藏/显示行工作表\u删除单元格值时更改不起作用

Excel隐藏/显示行工作表\u删除单元格值时更改不起作用,excel,vba,Excel,Vba,首先,我道歉,因为我是一个完全的新手。我正在帮助我们的人力资源部开发一个培训电子表格,并希望包含一些代码,当没有培训需求被标记时,这些代码会隐藏一些行,这是通过一个数字值来完成的,即9或10。我有这个功能,但当我“删除”单元格值时,它不会触发更改事件,即隐藏行 我相信这是一个简单的解决方案,但根据现有的帖子我无法得出结论 非常感谢任何人在这方面的帮助 多谢各位 马特 Private子工作表\u更改(ByVal目标作为范围) 错误时转到重置启用事件 Application.EnableEvents

首先,我道歉,因为我是一个完全的新手。我正在帮助我们的人力资源部开发一个培训电子表格,并希望包含一些代码,当没有培训需求被标记时,这些代码会隐藏一些行,这是通过一个数字值来完成的,即9或10。我有这个功能,但当我“删除”单元格值时,它不会触发更改事件,即隐藏行

我相信这是一个简单的解决方案,但根据现有的帖子我无法得出结论

非常感谢任何人在这方面的帮助

多谢各位

马特

Private子工作表\u更改(ByVal目标作为范围)
错误时转到重置启用事件
Application.EnableEvents=False
如果Target.Address=“$O$4”,则
如果是数字(Target.Value),则
如果Target.Value>=1且Target.Value=9,则
表(“培训计划”)。行(“5:21”)。EntireRow.Hidden=True
如果结束
如果结束
如果结束
如果结束
如果Target.Address=“$O$5”,则
如果是数字(Target.Value),则
如果目标值<11且目标值>=9,则
表格(“培训计划”)。行(“23:40”)。EntireRow.Hidden=True
其他的
如果Target.Value>=1且Target.Value=9,则
表格(“培训计划”)。行(“41:59”)。EntireRow.Hidden=True
其他的
如果Target.Value>=1且Target.Value=9,则
表格(“培训计划”)。行(“60:77”)。EntireRow.Hidden=True
其他的
如果Target.Value>=1且Target.Value=9,则
表格(“培训计划”)。行(“78:95”)。EntireRow.Hidden=True
其他的
如果Target.Value>=1且Target.Value=9,则
表格(“培训计划”)。行(“96:113”)。EntireRow.Hidden=True
其他的

如果Target.Value>=1,如果删除该值,则Target.Value不会介于9和11之间?Hi SJR;感谢您,但我尝试添加了“没什么”代码,但无法使其工作;这正是我希望得到一些帮助的原因。谢谢,我不完全确定你想做什么。如果值为9、10或空白,是否希望隐藏行?
Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Reset_EnableEvents
Application.EnableEvents = False

If Target.Address = "$O$4" Then
If IsNumeric(Target.Value) Then
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("5:21").EntireRow.Hidden = False
Else
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("5:21").EntireRow.Hidden = True
End If
End If
End If
End If

If Target.Address = "$O$5" Then
If IsNumeric(Target.Value) Then
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("23:40").EntireRow.Hidden = True
Else
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("23:40").EntireRow.Hidden = False
End If
End If
End If
End If


If Target.Address = "$O$6" Then
If IsNumeric(Target.Value) Then
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("41:59").EntireRow.Hidden = True
Else
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("41:59").EntireRow.Hidden = False
End If
End If
End If
End If

If Target.Address = "$O$7" Then
If IsNumeric(Target.Value) Then
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("60:77").EntireRow.Hidden = True
Else
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("60:77").EntireRow.Hidden = False
End If
End If
End If
End If

If Target.Address = "$O$8" Then
If IsNumeric(Target.Value) Then
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("78:95").EntireRow.Hidden = True
Else
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("78:95").EntireRow.Hidden = False
End If
End If
End If
End If

If Target.Address = "$O$9" Then
If IsNumeric(Target.Value) Then
If Target.Value < 11 And Target.Value >= 9 Then
Sheets("Training Plan").Rows("96:113").EntireRow.Hidden = True
Else
If Target.Value >= 1 And Target.Value <= 8 Then
Sheets("Training Plan").Rows("96:113").EntireRow.Hidden = False
End If
End If
End If
End If

Reset_EnableEvents:
Application.EnableEvents = True
End Sub