我正在尝试编写一个代码,该代码将根据下拉值隐藏/取消隐藏行。我可以让第一个下拉菜单 LLknownunknown 正常工作,但所有其他下拉菜单都不起作用。每个下拉列表的命名都是正确的,每个行号也是正确的,所以我现在确定发生了什么。
因此,当 LLknownunknown 更改时,正确的行将隐藏/取消隐藏。当 KnownUnknown 或 Zeroknownunknown 发生变化时,什么也不会发生。每个人都需要独立工作。
有什么想法吗?我检查了三遍,单元格名称是正确的。
Private Sub Worksheet_Change(ByVal Target As Range)
'The follow code will hide and unhide the Load Loss cell based on the user selection
If Intersect(Target, Range("LLknownunknown")) Is Nothing Or Target.Cells.Count > 1 Then
Exit Sub
ElseIf Range("LLknownunknown").Value = "Yes" Then
Rows("14:15").EntireRow.Hidden = False
ElseIf Range("LLknownunknown").Value = "No" Then
Rows("14:15").EntireRow.Hidden = True
End If
'The follow code will hide and unhide the impedance cells based on the user selection
If Intersect(Target, Range("KnownUnknown")) Is Nothing Or Target.Cells.Count > 1 Then
Exit Sub
ElseIf Range("KnownUnknown").Value = "Yes" Then
Rows("21:30").EntireRow.Hidden = False
Rows("36:52").EntireRow.Hidden = True
ElseIf Range("KnownUnknown").Value = "No" Then
Rows("21:30").EntireRow.Hidden = True
Rows("36:52").EntireRow.Hidden = False
End If
'The follow code will hide and unhide the zero sequence cells based on the user selection
If Intersect(Target, Range("Zeroknownunknown")) Is Nothing Or Target.Cells.Count > 1 Then
Exit Sub
ElseIf Range("Zeroknownunknown").Value = "Yes" Then
Rows("31:35").EntireRow.Hidden = False
Rows("53:61").EntireRow.Hidden = True
ElseIf Range("Zeroknownunknown").Value = "No" Then
Rows("31:35").EntireRow.Hidden = True
Rows("53:61").EntireRow.Hidden = False
End If
End Sub
最佳答案
工作表更改:隐藏或取消隐藏行
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iCell As Range
' Hide or unhide the load loss cells.
Set iCell = Intersect(Target, Range("LLknownunknown"))
If Not iCell Is Nothing Then
Select Case LCase(CStr(iCell.Value))
Case "yes"
Rows("14:15").Hidden = False
Case "no"
Rows("14:15").Hidden = True
'Case Else
End Select
Set iCell = Nothing
End If
' Hide or unhide the impedance cells.
Set iCell = Intersect(Target, Range("KnownUnknown"))
If Not iCell Is Nothing Then
Select Case LCase(CStr(iCell.Value))
Case "yes"
Rows("21:30").Hidden = False
Rows("36:52").Hidden = True
Case "no"
Rows("21:30").Hidden = True
Rows("36:52").Hidden = False
'Case Else
End Select
Set iCell = Nothing
End If
' Hide or unhide the zero sequence cells.
Set iCell = Intersect(Target, Range("Zeroknownunknown"))
If Not iCell Is Nothing Then
Select Case LCase(CStr(iCell.Value))
Case "yes"
Rows("31:35").Hidden = False
Rows("53:61").Hidden = True
Case "no"
Rows("31:35").Hidden = True
Rows("53:61").Hidden = False
'Case Else
End Select
Set iCell = Nothing
End If
End Sub
关于excel - 根据各种下拉菜单隐藏/取消隐藏行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72193918/