【发布时间】:2019-04-24 01:21:35
【问题描述】:
我有一个包含数字 0 到 10 的下拉列表。零隐藏第 1 到 10 行,1 仅显示第 1 行,2 仅显示第 1 行和第 2 行,依此类推,直到 nbr 10。这按预期工作,我可以从 nbr 1 上升到 10 并显示所有正确数量的行。
我不能做的是,例如,如果我选择了第 5 行,然后选择了第 2 行,我无法隐藏第 5 到第 3 行。
我对 VBA 很陌生,想不出该怎么做冲突的动作。谁能帮我解决这个问题?
If Target.Address = Range("SRUAdd").Address Then
If Range("SRUAdd").Value = "0" Then ' hide rows 1 to 10
Rows((Target.Row + 4) & ":" & (Target.Row + 13)).EntireRow.Hidden = True
ElseIf Range("SRUAdd").Value = "1" Then ' show row #1
Rows(Target.Row + 4).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "2" Then ' show row #2
Rows((Target.Row + 4) & ":" & (Target.Row + 5)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "3" Then ' show row #3
Rows((Target.Row + 4) & ":" & (Target.Row + 6)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "4" Then ' show row #4
Rows((Target.Row + 4) & ":" & (Target.Row + 7)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "5" Then ' show row #5
Rows((Target.Row + 4) & ":" & (Target.Row + 8)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "6" Then ' show row #6
Rows((Target.Row + 4) & ":" & (Target.Row + 9)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "7" Then ' show row #7
Rows((Target.Row + 4) & ":" & (Target.Row + 10)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "8" Then ' show row #8
Rows((Target.Row + 4) & ":" & (Target.Row + 11)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "9" Then ' show row #9
Rows((Target.Row + 4) & ":" & (Target.Row + 12)).EntireRow.Hidden = False
ElseIf Range("SRUAdd").Value = "10" Then ' show row #10
Rows((Target.Row + 4) & ":" & (Target.Row + 13)).EntireRow.Hidden = False
End If
End If
预期结果是我想根据从下拉列表中选择的数字显示和隐藏正确的行。当前结果是根据下拉选择仅显示正确的行。
【问题讨论】: