我似乎无法让该工作表的代码正常工作。
我这里有运行良好的代码,它会根据范围内的单元格是否为空来隐藏行。
不过,我想根据单元格 A1 中的值另外隐藏两行。
目前我有以下情况:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In Range("A6:A9")
If xRg.Value = "" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
End Sub
然后我想添加以下内容的组合:
If Range("A1") = "CODE 4 - ERROR" Then
Rows("35").EntireRow.Hidden = False
Else
Rows("35").EntireRow.Hidden = True
End If
If Range("A1") = "CODE 5 - INCONSISTENCY" Then
Rows("35").EntireRow.Hidden = False
Else
Rows("35").EntireRow.Hidden = True
End If
If Range("A1") = "CODE 1 - PASS" Then
Rows("35:36").EntireRow.Hidden = False
Else
Rows("35:36").EntireRow.Hidden = True
End If
但我似乎无法让后者单独工作或与上述工作结合工作。有什么建议吗?
答案1
欢迎!
据我所读和理解的代码,第 35 行和第 36 行的正常状态是“隐藏”。如果是 CODE 4 或 CODE 5,则应显示第 35 行;如果是 CODE 1,则应同时显示第 35 行和第 36 行,对吗?
我会这样写:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In Range("A6:A9")
If xRg.Value = "" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Rows("35:36").EntireRow.Hidden = True
If ((Range("A1") = "CODE 4 - ERROR") Or (Range("A1") = "CODE 5 - INCONSISTENCY")) Then
Rows("35").EntireRow.Hidden = False
ElseIf (Range("A1") = "CODE 1 - PASS") Then
Rows("35:36").EntireRow.Hidden = False
End If
Application.ScreenUpdating = True
End Sub