我有一个数据表,其中需要根据在不同单元格集中设置的条件隐藏行集。 我写的东西基本上是“洞穴人编码”,当然不起作用:)
我已经创建了if并试图将if放入ifs中,但是这段代码实际上什么也没发生。
我只写了2行,但大约有30种不同的行(尚未写)
Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range(Cells(7, 8), Cells(7, 8))
Set Target1 = Range(Cells(3, 2), Cells(3, 2))
If Target.Value = "No"
Rows("8:29").EntireRow.Hidden = True
If Target.Value = "Yes" And Target1.Value = "Half" Then
Rows("22:29").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Full" Then
Rows("8:29").EntireRow.Hidden = False
End If
End If
Set Target = Range(Cells(30, 8), Cells(30, 8))
Set Target1 = Range(Cells(3, 2), Cells(3, 2))
If Target.Value = "No"
Rows("31:56").EntireRow.Hidden = True
If Target.Value = "Yes" And Target1.Value = "Half" Then
Rows("47:56").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Full" Then
Rows("31:56").EntireRow.Hidden = False
End If
End If
End Sub
因此,在简短的摘要中,我在单元格B3中有两个变量(半和全)
以及在指定单元格(例如H7,H30等)的H行中,是/否选项。 第7、30行(任意行,具有“是/否”选项)是主题的标题 包括从8到29的该主题的详细信息。
如果H7(H30 ...)为否-应该隐藏所有详细信息(第8-29行;第31-56行,依此类推)-B3中的Valua没关系。 如果H7(H30 ...)是,则B3中的值很重要: 如果H7(H30 ...)是,B3是一半-在这种情况下,第22-29行隐藏(47-56等)不隐藏 如果H7(H30 ...)为“是”且B3已满-未隐藏第8-29行。
希望我解释得很好。
请帮助我改进代码,以便能够设定目标。
答案 0 :(得分:0)
您的if语句以及 elseif
中都缺少 then以下是适合您的代码:
Sub Worksheet_Change(ByVal Target As Range)
Set Target1 = Range(Cells(3, 2), Cells(3, 2))
' ------------
Set Target = Range(Cells(7, 8), Cells(7, 8))
If Target.Value = "No" Then
Rows("8:29").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Half" Then
Rows("22:29").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Full" Then
Rows("8:29").EntireRow.Hidden = False
End If
' ------------
Set Target = Range(Cells(30, 8), Cells(30, 8))
If Target.Value = "No" Then
Rows("31:56").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Half" Then
Rows("47:56").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" And Target1.Value = "Full" Then
Rows("31:56").EntireRow.Hidden = False
End If
End Sub
由于 Target1 范围引用不会更改,因此您无需在代码中重复设置它。